Git:如何避免在上一次合并还原后合并功能分支时发生冲突

Git:如何避免在上一次合并还原后合并功能分支时发生冲突,git,conflict,git-merge,git-revert,feature-branch,Git,Conflict,Git Merge,Git Revert,Feature Branch,在我们的存储库中,我们基于功能分支开发功能。最近我将一个功能feature/myfeature集成到master: git merge --no-ff feature/myfeature 在这次合并之后,进行了更多的开发,直到最终证明,该功能有缺陷并阻止了集成,所以我决定恢复这次合并。接下来,我选择了在不破坏历史记录的情况下恢复合并的唯一选项: git revert -m 1 commit_hash 同时,在master上进行了更多的开发,作者也添加了fixup提交。现在我想进行第二次运行,

在我们的存储库中,我们基于功能分支开发功能。最近我将一个功能
feature/myfeature
集成到
master

git merge --no-ff feature/myfeature
在这次合并之后,进行了更多的开发,直到最终证明,该功能有缺陷并阻止了集成,所以我决定恢复这次合并。接下来,我选择了在不破坏历史记录的情况下恢复合并的唯一选项:

git revert -m 1 commit_hash
同时,在
master
上进行了更多的开发,作者也添加了fixup提交。现在我想进行第二次运行,以集成/合并该功能。不幸的是,现在我遇到了十几个冲突,因为第一次apply&revert与第二次尝试所涉及的代码行完全相同

git merge --no-ff feature/myfeature
<pointless conflicts all over>
git合并--无ff功能/myfeature
如何重新应用以前恢复的功能分支而不发生那些毫无意义的冲突?


我尝试了
-s recursive-Xrenormalize
,但运气不好。重新基础也会导致相同的冲突。

您应该恢复恢复提交,而不是第二次合并还原的分支。我的意思是从字面上说

git revert <sha1>
git还原

其中,
sha1
是您先前的
git revert

所做的提交,作为一种“变通方法”,我通过手动将所有提交内容挑选到一个新分支中,覆盖旧分支,从而销毁了一个特征分支的历史记录。感觉很糟糕,很难看。谢谢!我认为这个解决方案存在一些可用性缺陷,因为在此之后,我必须再次重新应用/合并功能分支,以捕获剩余的更改。如果再次失败,那么一切都会翻两番。。。