手动合并分支的技巧
一、背景
使用Git时常用的合并分支操作是通过merge命令,但是某些情况下不适合使用merge命令(例如合并的目标分支已经重构的面目全非,有些模块甚至都移到其他仓库),此时手动合并比较保险。
二、手动合并
手动合并分支时,可以通过一些操作简化,假设要把branch1的内容合并至branch2:
1)第一种方式
- 通过
git merge-base branch1 branch2,找到公共提交结点revision; - 通过
git diff revision branch1来查看差异 - 根据差异来手动合并代码;
2)第二种方式
- 通过
git merge-base branch1 branch2,找到公共提交结点revision; - 先检出branch1:
git checkout branch1,然后通过git rebase -i revision,把从公共提交结点后的所有的提交合成一个提交; - 通过检查该提交的文件变化来手动合并代码;
Note:第二种方式branch1自公共提交后的提交历史,必须是线形(不能有merge commit),否则rebase操作需重新解决冲突,徒增工作量;