我不小心在本地提交了一堆文件,但没有推送。 基本上我想要做的就是删除我的提交,然后推送其他一些更改。
我可以通过Backout-ing删除提交,然后我将在本地提交,以便在本地删除它。
所以我的问题是,如果我进行推送,我的意外提交及其相应的转换日志是否会公开显示?
答案 0 :(得分:16)
听起来hg rollback
就是你想要的命令。
hg backout <REV>
创建一个新提交,以撤消<REV>
中所做的更改。原始提交和撤销提交都将保留在您的历史记录中。这是在将其推送到公共位置后修复错误提交的少数几个选项之一。
然而,在这种情况下,你还没有推向公众,所以有更好的解决方案。
如果错误提交是最后一次提交(即您的提示),那么您可以使用hg rollback
(在TortoiseHg的Repository
菜单下)。此命令类似于提交的“撤消”。
如果错误提交在您的历史记录中的其他地方(但仍未推送到公共回购),您还可以使用mq extension重写该历史记录的一部分。
答案 1 :(得分:3)
您可以使用hg strip -r . --keep
代替hg rollback
。只有在您提交了提交内容时才需要hg backout
。
答案 2 :(得分:0)
您的问题的简单答案是肯定的。
如果您执行了退出,则它会显示在您的历史记录中 如前所述,您想要执行Strip。
这是对mercurial的扩展 https://www.mercurial-scm.org/wiki/StripExtension