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

同理可以用类似的预置命令处理保留所有当前修改。



posted on 2021-10-20 16:34  疾速瓜牛  阅读(487)  评论(0编辑  收藏  举报

导航