如何删除 Git 合并? [复制]

Posted

技术标签:

【中文标题】如何删除 Git 合并? [复制]【英文标题】:How do I delete a Git merge? [duplicate] 【发布时间】:2013-05-14 14:30:00 【问题描述】:

我有点进退两难。我不小心在两个 Git 存储库之间合并了代码。无论出于何种原因,repo 名称都是相同的,并且在我知道之前,repo 的 URL 之一已经更改。所以我最终合并了来自两个不同项目的代码。这是来自存储库提交的插图。

我没有命名任何分支(一直在研究 HEAD)。如何删除其中一个提交(特别是橙色的那个)?

【问题讨论】:

【参考方案1】:

你可以这样做:

git reset --hard 628612ac

如果您确定当前工作副本中没有您需要的任何内容。这会将HEAD 放到合并之前的提交中。实际上没有删除任何内容 - 其他提交变得无法访问,并且将在未来某个时候被垃圾收集。

另一种选择是使用git-revert

git revert -m 1 e90aeed8

这将保留您的历史记录。它会创建一个新的提交来恢复 e90ae... 所做的一切。

这是一个关于这个主题的好读物:https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt

还有这里:http://git-scm.com/2010/03/02/undoing-merges.html

【讨论】:

谢谢!! git revert 在本地完成了这个技巧,而 git reset --hard 在远程仓库上工作。这些链接确实很有帮助!

以上是关于如何删除 Git 合并? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除推送的 git 合并提交

如何执行 git revert 并删除合并历史记录?

如何删除所有超过一年的 Git 远程分支?

Git:如何提交手动删除的文件? [复制]

如何从 git 跟踪中删除文件? [复制]

如何从 git repo 中删除一个文件夹? [复制]