Git常用命令(下)
Git 常用命令(下)
本节主要介绍rebase相关的操作
我们将以具体的功能来处理你相关的事情
1. Rebase
简介
- 相信你对于两个分支的
merge
操作并不陌生, 整合分支最容易的方法是merge
命令。 它会把两个分支的最新快照(C3 和 C4)
以及二者最近的共同祖先(C2)
进行三方合并,合并的结果是生成一个新的快照(并提交)。
你可以提取在
C4
中引入的补丁和修改,然后在C3
的基础上应用一次。 在Git
中,这种操作就叫做 变基(rebase)
。 你可以使用rebase
命令将提交到某一分支上的所有修改都移至另一分支上,就好像"重新播放"一样。- 在上述的场景中我们做如下操作便可以成功将
experiment
分支上的修改C4
,应用到master
分支上
1
2git checkout experiment
git rebase master它的原理是首先找到这两个分支(即当前分支
experiment
、变基操作的目标基底分支master
) 的最近共同祖先C2
,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底C3
, 最后以此将之前另存为临时文件的修改依序应用。它的过程就像下面描述的那样:
- 在上述的场景中我们做如下操作便可以成功将
2.
使用rebase
合并代码 - 简单情况
切换到你要提取的分支
1
git switch "branchName"
使用
git rebase
将当前分支在与目标分支公共父节点之后的提交提取并应用到目标分支- 当前分支 -
experiment
- 目标分支 -
master
1
git rebase master
- 当前分支 -
如上图所示,会进行如图上的操作
- 操作完成后
experiment
指向 -C4'
节点
- 操作完成后
合并
experiment
的代码到master
分支1
2git switch master
git merge experiment本此合并完成,同时你可以使用
rebase
合并之前的提交