【问题标题】:How to delete a pushed git merge commit如何删除推送的 git 合并提交
【发布时间】:2021-04-20 11:05:02
【问题描述】:

我将几个 devel 提交合并到我的 repo 的 master 分支中,只是为了发现 GitAhead 在某个时候搞砸了 master。

现在我尝试了 SO 上描述的各种方法以撤消这些提交(除了 master 上的合并之外没有其他提交)。这样master确实被重置为更早的版本。

但是,我仍然在无头分支中拥有完整的合并历史记录(图像上的灰色路径):

enter image description here

我尝试恢复、重置等分支但没有成功,唉!

如何完全删除提交(c518859ce4、7574f10f68)?

【问题讨论】:

  • 问题是第一次提交的标签。它使幽灵犯下的罪行保持活力。摆脱它并检查您的重置大师。
  • 成功了!非常感谢!
  • 耶!我喜欢这种情况发生。我会给出这个答案。

标签: git git-commit git-revert


【解决方案1】:

问题是第一次提交的标签。它使幽灵提交保持活力。

摆脱标签并检查您的重置主机(我认为它位于图表下方的某个位置)。您的历史记录将看起来正确。

【讨论】:

    【解决方案2】:

    1) 选项恢复:

       git revert c518859ce4
        git revert 7574f10f68
    

    那你就可以推送了:

    git push
    

    【讨论】:

    • 这似乎并不能解决问题,除非我做错了什么:这将创建一个合并提交,而不是删除错误/不必要的提交!有没有办法完全删除从某个位置开始的分支或无头分支?!没有合并,没有备份,只是撤消错误的提交?!
    • 好吧,给读者一个提示:它确实有效,只要没有标签阻止提交被垃圾收集(见答案)!
    猜你喜欢
    • 2019-04-24
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2011-11-05
    • 2020-09-05
    • 1970-01-01
    • 2021-10-28
    相关资源
    最近更新 更多