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 。部分参数可以省略,个人建议总是写全。
不当变基风险巨大,安全施工必须严格遵守:所有即将拔出的提交,都还没有流落到外人手里。
3 高级
变基是篡改历史的杀手锏。复杂的变基最好通过参数 -i
进入交互模式,否则难以上手。
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file