变基

1 拣选

在正式学习变基之前,我们不妨先了解以下 cherry-pick 。它的功能是,将指定 commit 复制一份,另觅他处提交。

$ git cherry-pick commit-X
$ git cherry-pick commit-A..commit-B

冲突在所难免,只能手动解决。

2 初级

rebase 是一组连续的拣选操作,俗称“变基”,常用于整合分支。和 merge 相比,整合的最终结果没有区别,但变基的提交历史更加整洁。

$ git rebase --onto master server client

上条命令的意思是,拔出 client 上不属于 server 的部分,插入 master 。部分参数可以省略,个人建议总是写全。

interesting-rebase-2

不当变基风险巨大,安全施工必须严格遵守:所有即将拔出的提交,都还没有流落到外人手里

3 高级

变基是篡改历史的杀手锏。复杂的变基最好通过参数 -i 进入交互模式,否则难以上手。

pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file