我有两个分支(我们称它们为A和B)。
A是我的常规开发分支,而B是长期运行的功能分支。
为了保持最新状态,通常将A合并到B中,并且有一天B将合并到A中,但是我们现在还没有。
大约一周前,开发人员不小心将B合并为A,然后立即通过运行git revert取消合并。
从那时起,A进行了许多更改,包括将其他功能分支合并到其中。
今天,我尝试像定期执行的那样将A合并为B,但是现在遇到了问题。
合并是从B中删除在B中添加的许多文件(大概是因为它们在运行git revert时已从A中删除),并且正在添加从B中删除的许多文件(大概是由于git revert添加了它们) )。
它也没有做很多应该在B中进行的更改。
我的问题是有什么办法可以彻底解决此问题?
我愿意重写历史,因为我们有一个小团队,我们可以协调。
我尝试将A重置到不良合并之前的水平,然后选择我们从那时以来所做的更改,但是由于存在许多功能分支合并,因此很难(特征分支包含不良合并提交并还原)。
最简单的解决方案,假设您要容忍丑陋的历史记录ID以还原还原。
git revert SHA1-of-revert
随后的合并应该可以正常工作。如果您想在以后相对容易的一点上进行清理,假设您已经基于不良还原(包括将来的还原)合并了所有功能分支。
git rebase --interactive SHA1-of-revert~
然后删除还原线。这将为您提供完整的班轮历史。如果要保留要素分支的合并,请添加--preserve-merges
选项。
git rebase --interactive --preserve-merges SHA1-of-revert~
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句