Git

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

2019-12-10  本文已影响0人  奔跑的Robi

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

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

上一篇下一篇

猜你喜欢

热点阅读