【问题标题】:Reverting merge revert还原合并还原
【发布时间】:2021-07-29 15:40:38
【问题描述】:

我以这种方式恢复了合并提交(功能 -> 开发):

git revert -m 1 <merge-commit-hash>
git push origin develop

已经创建了一个新的提交Revert "Merge branch 'feature'" 现在我想恢复那个恢复。我应该只使用以下命令:git revert &lt;revert-merge-branch-commit-hash&gt; 吗?

【问题讨论】:

    标签: git git-revert


    【解决方案1】:

    很遗憾,在大多数情况下,答案可能是。 (您应该还原还原提交。)

    我说“不幸的是”,因为回想起来,这两个还原一起为您的历史添加了不必要的(并且可能令人困惑的)提交。这里有两种可能的替代方案:

    1. 重置分支并强制将其推出。这会导致更清晰的历史记录,但对于诸如develop 之类的共享远程分支,条件必须接近完美才能考虑在紧急情况之外执行此操作。 (我的意思是近乎完美:分支上没有新的提交,自从添加了错误的提交以来已经过去了很短的时间和/或其他人不太可能从它分支出来,等等。)
    2. 您可以重新创建最初合并的分支,然后使用git rebase --no-ff [merge-base-commit] 从开始提交将其重新定位到自身。这将强制 rebase 重写提交,以便可以重新合并它们。如果新的提交被添加到之前的分支中,我可能会选择这个,现在它可以再次被引入。

    但一般来说,大多数时候,在共享远程 develop 上,它可能会被还原。

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 2011-12-19
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2012-06-06
      • 2013-08-30
      • 1970-01-01
      相关资源
      最近更新 更多