Git 代码托管介绍

Git 代码托管

Git 代码托管是 Coding.net 基于 Java 自主研发的一款 Git 在线代码托管平台。 开发者可以将源代码通过 Git 命令托管到 Coding.net, 并且享受 Coding.net 提供的各种延伸工具,如合并请求( Merge Request/Pull Request),Line Notes,保护分支,代码阅读,Webhook 等。查看 Git 代码托管使用帮助常见问题

Git 代码托管的优势

Git 是一种分布式版本控制系统。在开发过程中,为了跟踪代码、文档、项目中的信息变化,版本控制变得前所未有的重要。同时传统的代码都是管理到本机或者内网,一旦本机或者内网机器出问题,代码可能会丢失。使用远端代码仓库将永远存在一个备份,也免去了搭建本地代码版本控制服务的繁琐。 相比集中式版本控制系统如 SVN ,分布式版本控制系统 Git 拥有更强大的分支管理与合并能力,支持离线开发,并良好地保留了提交过程,让您和您的团队在开发过程中如虎添翼。 云计算时代 Git 以其强大的分支和克隆功能,更加方便了开发者远程协作。

Git 代码托管主要功能

  • 分支合并 ( Merge Request/Pull Request )
  • 保护分支
  • 代码阅读 pre Insight
  • Line Notes
  • WebHook

Git 分支介绍

分支一方面类似科幻电影里面经常出现的平行宇宙,每个分支的代码版本都是独立演进的,分支之间的代码版本完全不会干扰另外一个代码版本的开发。但是,与平行宇宙不同的一点是,分支之间还能合并。

Git 的分支相比 SVN 要轻量很多,这是因为 Git 分支并不是复制一个新仓库,而是为一个分支存储一个指针,这个指针将指向某个提交对象。没错,这就和数据结构中常见的指针链表一样。所以 Git 的分支只是指针,并没有将仓库进行复制,每次提交都会让当前的分支向后移动,指向最后一次提交的对象。当你在切换分支时,Git 也只是改变指向当前所在分支的特殊指针 HEAD,所以可以快速地在各个分支之间进行切换。

分支的功能

分支在实际中可以方便的隔离开发。 假设你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

Git 常用命令速查表

创建版本库

$ git clone <url>                  #克隆远程版本库
$ git init                         #初始化本地版本库

修改和提交

$ git status                       #查看状态
$ git diff                         #查看变更内容
$ git add .                        #跟踪所有改动过的文件
$ git add <file>                   #跟踪指定的文件
$ git mv <old><new>                #文件改名
$ git rm<file>                     #删除文件
$ git rm --cached<file>            #停止跟踪文件但不删除
$ git commit -m "commit messages"  #提交所有更新过的文件
$ git commit --amend               #修改最后一次改动

查看提交历史

$ git log                    #查看提交历史
$ git log -p <file>          #查看指定文件的提交历史
$ git blame <file>           #以列表方式查看指定文件的提交历史

撤销

$ git reset --hard HEAD      #撤销工作目录中所有未提交文件的修改内容
$ git checkout HEAD <file>   #撤销指定的未提交文件的修改内容
$ git revert <commit>        #撤销指定的提交
$ git log --before="1 days"  #退回到之前1天的版本

分支与标签

$ git branch                   #显示所有本地分支
$ git checkout <branch/tag>    #切换到指定分支和标签
$ git branch <new-branch>      #创建新分支
$ git branch -d <branch>       #删除本地分支
$ git tag                      #列出所有本地标签
$ git tag <tagname>            #基于最新提交创建标签
$ git tag -d <tagname>         #删除标签

合并与衍合

$ git merge <branch>        #合并指定分支到当前分支
$ git rebase <branch>       #衍合指定分支到当前分支

远程操作

$ git remote -v                   #查看远程版本库信息
$ git remote show <remote>        #查看指定远程版本库信息
$ git remote add <remote> <url>   #添加远程版本库
$ git fetch <remote>              #从远程库获取代码
$ git pull <remote> <branch>      #下载代码及快速合并
$ git push <remote> <branch>      #上传代码及快速合并
$ git push <remote> :<branch/tag-name>  #删除远程分支或标签
$ git push --tags                       #上传所有标签

更多内容请查看 Git 文档

相关文章