Mercurial:删除单个非头部变更集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mercurial:删除单个非头部变更集相关的知识,希望对你有一定的参考价值。

如何从存储库中删除单个变更集(不是头部)?

  • hg strip不起作用,因为我不想删除后代。
  • hg rebase在头上,然后hg strip会起作用,但我不能在后代上重新定位。 (产生错误)

我的变更集与其他任何东西无关(它只是我不应该做的一堆文件添加),所以它应该很容易删除而不会出现问题。另外,我的存储库实际上具有线性历史记录(每个变更集只有一个子节点,特别是只有一个节点)。

背景

我正在使用hgsubversion,当我尝试推送触及其名称中包含变音符号的任何文件的提交时,它或我的SVN服务器崩溃。我不小心添加了这样一个文件,然后在其上做了一些其他的工作。现在需要删除违规提交。

答案

作为ngoldbaum implied in a comment,strip去除了后代,而不是祖先。如果没有后代你就可以了。 (但要注意:另一个分支的后代将被剥夺!)

如果你的问题是提交有后代,你仍然可以使用hg histedit删除它,同时保留它的后代。

以上是关于Mercurial:删除单个非头部变更集的主要内容,如果未能解决你的问题,请参考以下文章

使用提交消息 mercurial 查找变更集

在使用 Mercurial 移植大量变更集时更改提交消息

如何将一些变更集移动到mercurial中的新分支

Mercurial Repo:hg 验证问题:“第一个损坏的变更集似乎是 3270”

使用mercurial克隆或拉到标记后如何获取标记变更集?

Mercurial/Meld 中的 3 路合并如何工作?