转载

Git 分支操作

Git 分支操作

  • 创建分支

    #创建了一个test分支
    git branch test
    
  • 切换分支

    #切换到test分支
    git checkout test
    
  • 创建并进行切换

    #创建了test2分支,并切换到了test2分支
    git checkout -b test2
    
  • 删除分支

    #删除test2分支
    git branch -d test2
    
  • 删除远程分支

    git branch -r -d origin/branch-name
    git push origin :branch-name
    
  • 查看分支(*号代表当前工作的分支)

    $ git branch
      master
      test
    * test2
    
  • 分支的合并

    下面讲的有两种分支合并方式,一种是fast-forward的方式,也就是简单得移动一下“指针”

    另外一种是three-way merge, 这个复杂一点下面也会详细讲。

    begin

    开始你依此进行了C0, C1, C2 commit

    之后你发现了issue53,所以你新建了一个iss53分支,用来解决issue 53

    你切换到了iss53分支并进行了提交C3

    这时公司打电话给你说出现了一个紧急bug,需要你进行修复,所以你新建一个hotfix分支

    并进行了C4提交

    你修复完了紧急bug,就把hostfix分支合并进master分支,这属于一个fast-forward

    因为master分支是hotfix的祖先,所以只是简单得把指针移向hotfix,之后hotfix已经没有

    用处了,你可以进行delete

    修复完紧急bug后,你又回到了你得issue 53中继续工作,进行了提交C5

    现在你得issue 53通过测试后,已经完成,需要把iss53分支合并进master分支,但是现在

    有一个问题C5并不是master的祖先,所以不能用fast-forward的提交方法,
    需要使用three-way merge,三路合并的方式,
    三路分别是两个分支的共同祖先C2,以及两个分支的当前提交C4, C5

    如果两个分支里面的同一个文件,一个和祖先相同,一个不同,取不同的版本。
    如果两个分支里面的同一文件,都和祖先不同,就会出现冲突,需要人工选择。

    具体的可以参考https://blog.csdn.net/u012937029/article/details/77161584

    这是合并后的结果。

正文到此结束
本文目录