首页 > 代码库 > Git学习之路(6)- 分支操作

Git学习之路(6)- 分支操作

▓▓▓▓▓▓ 大致介绍

  几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的。就比如我在没有学习Git之前,想实现我的一个小想法,但是又害怕影响已完成的工作,只有ctrl+c、ctrl+v,但是在Git中,甚是方便了许多。

  这篇博客主要讲以下几部分:

    ◆ 创建分支

    ◆ 合并分支

    ◆ 删除分支  

 

▓▓▓▓▓▓ 创建分支

  在之前的学习中,都只有一个分支即 master分支 这是Git中主分支的默认名。在Git学习之路(4)- 撤销操作、删除文件和恢复文件 中提到了HEAD,表示当前的版本,在以前的学习中masterHEAD是这种关系:

技术分享

 

  Git使master指向最新的提交,然后使HEAD指向master,就像C语言中的指针一样。

  创建一个分支:

    git branch 分支名 

  

  查看分支:

    git branch 

 

  切换到某个分支:

    git checkout 分支名

 

  创建并切换到某个分支:

    git checkout -b 分支名

 

  例如:

技术分享

 

  首先用 git branch 查看了一下分支,发现就只有 master 一个分支,然后创建了 branch1 分支。查看分支,可以发现前面有*符号的分支,为当前分支。切换到branch1

  此时,用图来表示:

技术分享

▓▓▓▓▓▓ 合并分支

  在分支上改好文件后,我们最后要把它合并到主分支上。

  

    git merge 分支名

 

  查看以和当前分支合并过的分支:

    git branch --merge

 

  查看未于当前分支合并过的分支:

    git branch --no-merge

 

  例如:

技术分享

 

  首先查看了分支,可以看到一共有三个分支:branch1branch2master。然后查看和当前分支master合并过的分支,显示无。查看没有和master合并过的分支,有两个即:branch1branch2。将branch1master合并,继续查看和master合并过的分支和未合并过的分支

  此时,用图来表示:

技术分享

  但是有时候,分支合并时并不是一帆风顺,例如两个分支如果对同一文件的用意部分进行修改,那么在合并时就会出现问题:

  如图:

技术分享

 

  这时,合并分支时产生了冲突,Git会让你自己选择要保留哪个,在你的代码中会出现类似这样的提示信息:

技术分享

 

  选择你就要保留的代码,删除不要的,在提交就可以了

 

▓▓▓▓▓▓ 删除分支

  当我们要删除一个分支时,要分为两种情况:

  删除与当前分支合并过的分支:

    git branch -d 分支名

 

  删除与当前分支没有合并过的分支:

    git branch -D 分支名

 

  例如:

技术分享

 

  首先查看了与当前分支合并和没有合并过的分支,发现用-d删除未合并过的分支时,出现了错误,改用-D则成功删除

 

参考资料: 

      廖雪峰的官方网站-Git教程

      CODE帮助文档-Progit中文版

 

  

 

Git学习之路(6)- 分支操作