git 开发分支合并回主分支 最佳实践
1.比较分支差异
网上用的最多的方法大多数是直接
git log --left-right main dev --pretty=oneline
我在实际操作的时候发现,这个方式是有一定的缺陷的。有的时候明明某个提交在两个分支上都有,这个命令也会误报。
原因是,即使一笔提交是cherrypick到主分支的,但是只要这俩patch的父不是同一个,就还是会被认为是不同的patch。
我的方法是:
git log main --pretty=oneline > main.txt
git log dev --pretty=oneline > dev.txt
然后在Beyond Compare中打开这俩文件进行比对,可以很容易发现两个分支是从哪笔提交开始分叉的
然后一个个的往主分支上cherypick即可,有冲突就resolve一下,很快就可以搞定了。
2. 修复某个patch之前的patch
然后还有一个经常遇到的问题,就是在弄好很多patch之后,发现最初的某个patch的改动有问题,比如版本控制符没有删掉
这样就会导致编译错误。然后就需要我们专门修复这个patch。怎么操作呢?
假设 是 XXXX1出了问题
XXXX3
XXXX2
XXXX1
我们现在是XXX3上,我们就需要
git rebase --interactive XXXX2^
然后选择XXXX1 前面,把pick改成edit
然后改好之后,git add; git commit --amend; 最后git rebase --continue 即可
3.大量的冲突需要直接apply incoming changes
不方便手动一个个确认的话,可以使用Accerpt all incoming去处理一个文件中的所有冲突。
具体为:
Ctrl + Shift + P
快捷键调出控制命令行;
输入incoming即可找到
Merge Conflict: Accept All Incoming
同理可以用类似的预置命令处理保留所有当前修改。