如何干净地合并包含 revert 的分支(包含 revert 的分支将 revert 视为新更改)

Posted

技术标签:

【中文标题】如何干净地合并包含 revert 的分支(包含 revert 的分支将 revert 视为新更改)【英文标题】:How to cleanly merge branch containing revert (branch containing revert sees revert as new changes) 【发布时间】:2016-05-29 16:02:09 【问题描述】:

我有一个分支,其中包含一个我想移至 master 的还原。

但是,revert 似乎被视为新更改,并在合并时将它们应用于 master。这覆盖了 master 中很多应该保持不变的东西。

我想合并到 master,就好像 reverted 提交从未发生过一样。有没有办法做到这一点?

如果没有,我需要对包含还原的分支做什么才能使其进入可以合并而不覆盖还原内容的状态?

【问题讨论】:

【参考方案1】:

在您的分支上,只需还原还原提交,即

git revert <sha of revert commit>

如果您愿意,这将“撤消撤消”。

【讨论】:

虽然这确实“撤消了撤消”,但这会使 revert 提交从未发生,而不是 reverted 提交。在这种情况下,我相信我们的解决方案是创建一个新分支并挑选正确的提交。不过,我仍然很好奇是否有执行此操作的命令。

以上是关于如何干净地合并包含 revert 的分支(包含 revert 的分支将 revert 视为新更改)的主要内容,如果未能解决你的问题,请参考以下文章

如果合并或重新定位,则主删除分支文件中的 Git `revert`

Git Revert 然后在修复后重新合并

Git tips: 合并 commit 保持分支干净整洁

git revert 后,合并显示没有更改并且已经更新

从发布分支中删除自引用信息

如何撤消合并请求及其提交?