我们的团队一直致力于develop
,偶尔会在master
进行PR。几个月前,我们做了一个公关,并使用了南瓜合并(缺乏关于效果的知识)来将develop
更改为master
。此提交已被推送。
该团队已经在develop
继续工作了几个月,现在我们已经在develop
提交了400多份提交。根据比较,master
有一个不在develop
上的提交:壁球合并。
这就是我理解树的样子:
---X---------------S <-- master
/ \
- ---A---B---C-----D1---D2 ... Dn <-- develop
S
是A
,B
和C
的压缩合并。
现在,当尝试将develop
合并到master
(或反过来)时,我们会遇到很多冲突,因为两个分支都有变化(虽然从相同的变化开始)。< / p>
有什么好办法解决这个问题?有没有办法“撤消”壁球合并并回到“好”状态(例如:X
)?
答案 0 :(得分:1)
假设:
-M1--X---------------S <-- master
/ \
-D1 ---A---B---C-- <-- develop
你可以这样做:
你应该得到你现在拥有的相同内容,但是用合并代替了壁球。
那是:
git checkout -b master-new M1
git merge D1
git cherry-pick S
在此之后,如果master-new
看起来不错,那么您可以备份master
并替换为master-new
。
(并祈祷没有人会介意你重写历史。)