有没有办法在Mercurial中删除本地提交?

所以我一直在Mercurial中犯了一个愚蠢的错误。 很多时候,我会开始工作而不进行“hg pull”和“hg update”。 当我尝试推送更改时,出现错误。

有没有办法删除我的本地提交,所以我可以避免创建多个头,分支等? 我只想删除我的本地提交,使用提示合并我的更改,然后重新提交。 听起来很简单,对吧? 我似乎无法找到任何方法轻松删除本地提交,所以我可以干净地合并提示。

再次,我只是试图删除用“hg ci”进行的本地提交。 我不想修改文件,还原等。


启用“ mq ”扩展名并输入以下内容:

hg strip #changeset#

其中#changeset#是要删除的变更集的散列。 这将删除所述变更集, 包括从其下降的变更集。

有关更多信息,请查看Strip Strip。

如果你得到“未知命令”strip,你可能需要启用它。 为此,请查找.hgrcMercurial.ini文件并将以下内容添加到该文件中:

[extensions]
mq = 

请注意,(正如Juozas在他的评论中提到的)具有多个头部是Mercurial中的正常工作流程。 你不应该使用strip命令来对付它。 相反,你应该把你的脑袋和脑袋合并,解决任何冲突,测试,然后推。

当您真的想摆脱污染分支的变更集时, strip命令很有用。 事实上,如果你在这个问题的情况下,你想彻底删除所有“草稿”变更集,请检查最基本的建议是:

hg strip 'roots(outgoing())'

如果您正在使用Hg乌龟,只需在以下位置激活扩展名“ mq ”:

  • 文件/设置/扩展/
  • 选择mq
  • 然后从您想要开始分条的地方选择底部修订版,方法是right click它并选择:

  • 修改历史
  • 跳闸
  • 像这样:

    在这里输入图像描述

    在这个例子中,它将从第19个修订版删除到最后一个已提交的(22)。


    正如其他人都指出你应该拉动然后合并头部,但是如果你真的想在没有任何EditingHistory工具的情况下摆脱你的提交,那么你可以只hg clone -r你的repo以获得除了那些改变之外的所有内容。

    链接地址: http://www.djcxy.com/p/37571.html

    上一篇: Is there any way to delete local commits in Mercurial?

    下一篇: How to edit incorrect commit message in Mercurial?