所以我在 Mercurial 中不断犯一个愚蠢的错误。很多时候,我会在不执行“hg pull”和“hg update”的情况下开始工作。当我尝试推送更改时,出现错误。
有什么办法可以删除我的本地提交这样我就可以避免创建多个头、分支等?我只想删除我的本地提交,将我的更改与提示合并,然后重新提交。听起来很简单,对吧?我似乎找不到任何方法可以轻松删除本地提交这样我就可以干净地与尖端合并。
再说一遍,我只是想删除使用“hg ci”进行的本地提交。我不想修改文件、恢复等。
启用“strip" 扩展名并输入以下内容:
hg strip #changeset# --keep
Where #changeset#
是您要删除的变更集的哈希值。这将删除上述变更集包括源自它的变更集并将保持您的工作目录不变。如果您还希望恢复提交的代码更改,请删除--keep
选项。
欲了解更多信息,请查看条带延伸 https://www.mercurial-scm.org/wiki/StripExtension.
如果您收到“未知命令‘strip’”,您可能需要启用它。为此,请找到.hgrc
or Mercurial.ini
文件并向其中添加以下内容:
[extensions]
strip =
请注意(正如 Juozas 在他的评论中提到的)拥有多个头是 Mercurial 中的正常工作流程。您不应该使用 strip 命令来解决这个问题。相反,您应该将您的 head 与传入的 head 合并,解决所有冲突,测试,然后推送。
The strip
当您确实想删除污染分支的变更集时,命令非常有用。事实上,如果你在这个问题 https://stackoverflow.com/q/2139165/419956的情况和你想要完全删除所有“草稿”变更集永久,查看最佳答案 https://stackoverflow.com/a/2143711/419956,这基本上建议这样做:
hg strip 'roots(outgoing())'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)