手动合并分支的技巧

一、背景

使用Git时常用的合并分支操作是通过merge命令,但是某些情况下不适合使用merge命令(例如合并的目标分支已经重构的面目全非,有些模块甚至都移到其他仓库),此时手动合并比较保险。

二、手动合并

手动合并分支时,可以通过一些操作简化,假设要把branch1的内容合并至branch2:

1)第一种方式

  1. 通过git merge-base branch1 branch2,找到公共提交结点revision;
  2. 通过git diff revision branch1来查看差异
  3. 根据差异来手动合并代码;

2)第二种方式

  1. 通过git merge-base branch1 branch2,找到公共提交结点revision;
  2. 先检出branch1:git checkout branch1,然后通过git rebase -i revision,把从公共提交结点后的所有的提交合成一个提交;
  3. 通过检查该提交的文件变化来手动合并代码;

Note:第二种方式branch1自公共提交后的提交历史,必须是线形(不能有merge commit),否则rebase操作需重新解决冲突,徒增工作量;

评论