美文网首页Git
git的分支与合并的两种方法

git的分支与合并的两种方法

作者: 奔跑的Robi | 来源:发表于2019-12-10 11:08 被阅读0次

    如何将两个分支合并到一起。就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线。

    1. git merge

    咱们先来看一下第一种方法 —— git merge

    在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。翻译成自然语言相当于:“我要把这两个父节点本身及它们所有的祖先都包含进来。”下面具体解释。

    试试

    创建新分支 bugFix

     git branch bugFix
    

    切换到该分支

     git checkout bugFix
    

    提交一次

      git commit
    

    切换回 master

       git checkout master
    

    再提交一次

    git commit
    

    用 git merge 把 bugFix 合并到 master

    git merge bugFix
    

    (master 的分支被混入到所有的提交记录,但 bugFix 没有,所以要进行下面的操作)

    再把 master 分支合并到 bugFix(因为 master 继承自 bugFix,Git什么都不用做,只是简单地把 bugFix 移动到 master所指向的那个提交记录。)

     git checkout bugFix;
    
     git merge master
    

    2. git rebase

    第二种合并分支的方法是 git rebase。rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

    Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。

    222222

    创建新分支 bugFix分支

    git branch bugFix

    提交一次(提交在master分支上)

    git commit

    切换到bugFix分支

    git checkout bugFix

    提交一次(提交在bugFix分支上)

    git commit

    使用git rebase把 bugFix 分支里的工作直接移到 master 分支上(移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发#的)。

    git rebase master

    注意:提交记录 C3 依然存在(树上那个半透明的节点),而 C3'是我们 Rebase 到 master 分支上的 C3 的副本。

    切换到master分支上(为了进行更新master的操作)

    git checkout master

    把master的 rebase 到 bugFix 分支上(由于 bugFix 继承自 master,所以 git 只是简单的把 master 分支的引用向前移动了一下而已。)

    git rebase bugFix

    相关文章

      网友评论

        本文标题:git的分支与合并的两种方法

        本文链接:https://www.haomeiwen.com/subject/qggwgctx.html