git rebase在官方文档中解释为:“Reapply commits on top of another base tip”,中文意思为“在另一个基本提示之上重新提交”,简言之变基。
本文先介绍git rebase能做什么,然后如何操做,最后可以使用sourceTree工具提效这些操作。
一、git rebase(变基)能做什么
优点一:合并分支线性化
在git中,如何将两个分支合并到一起,除了git merge命令,git rebase命令也能够做到分支合并。而rebase相比于merge,可以创造更线性的提交历史:
如分支bugfix、main为两个并行开发的分支:C2、C3为bugfix的commit节点,C4为main的commit节点,bugfix为当前分支:
merge与rebase分支合并的效果对比:
git merge main |
合并后保留了各个分支的提交路径,并且自动新增了个额外节点(C5),最新引用指向此节点 |
|
git rebase main |
合并成一个提交路径,并且无新增额外节点 |
优点二:提交记录明确化
除了分支合并,git rebase也可以把提交记录明确化,将提交进行合并、剔除、修改提交记录内容等操作,代码库的提交历史将会变得明确