如何删除推送的 git 合并提交
Posted
技术标签:
【中文标题】如何删除推送的 git 合并提交【英文标题】:How to delete a pushed git merge commit 【发布时间】:2021-04-20 11:05:02 【问题描述】:我将几个 devel 提交合并到我的 repo 的 master 分支中,只是为了发现 GitAhead 在某个时候搞砸了 master。
现在我尝试了 SO 上描述的各种方法以撤消这些提交(除了 master 上的合并之外没有其他提交)。这样master确实被重置为更早的版本。
但是,我仍然在无头分支中拥有完整的合并历史记录(图像上的灰色路径):
enter image description here
我尝试恢复、重置等分支但没有成功,唉!
如何完全删除提交(c518859ce4、7574f10f68)?
【问题讨论】:
问题是第一次提交的标签。它使幽灵犯下的罪行保持活力。摆脱它并检查您的重置大师。 成功了!非常感谢! 耶!我喜欢这种情况发生。我会给出这个答案。 【参考方案1】:问题是第一次提交的标签。它使幽灵提交保持活力。
摆脱标签并检查您的重置主机(我认为它位于图表下方的某个位置)。您的历史记录将看起来正确。
【讨论】:
【参考方案2】:1) 选项恢复:
git revert c518859ce4
git revert 7574f10f68
那你就可以推送了:
git push
【讨论】:
这似乎并不能解决问题,除非我做错了什么:这将创建一个合并提交,而不是删除错误/不必要的提交!有没有办法完全删除从某个位置开始的分支或无头分支?!没有合并,没有备份,只是撤消错误的提交?! 好吧,给读者一个提示:它确实有效,只要没有标签阻止提交被垃圾收集(见答案)!以上是关于如何删除推送的 git 合并提交的主要内容,如果未能解决你的问题,请参考以下文章