9

我不小心在本地提交了一堆文件,但没有推送。所以基本上我想要做的是删除这个我的提交,然后推送一些其他的更改。

我可以通过 Backout-ing 删除提交,然后我必须在本地提交,所以它实际上是在本地删除的。

所以我的问题是,如果我进行推送,我的意外提交及其相应的恢复日志是否会公开可见?

4

3 回答 3

17

这听起来像是hg rollback你想要的命令。

hg backout <REV>创建一个新的提交来反转<REV>. 原始提交和回退提交都将保留在您的历史记录中。这是在将错误提交推送到公共位置后必须修复的少数选项之一。

但是在这种情况下,您还没有推向公众,因此有更好的解决方案。

如果错误提交是最后一次提交(即您的提示),那么您可以使用hg rollbackRepository在 TortoiseHg 的菜单下)。该命令类似于提交的“撤消”。

如果错误提交在您的历史记录中的其他位置(但仍未被推送到公共存储库),您还可以使用mq 扩展来重写您的历史记录的那部分。

于 2012-09-11T17:17:25.130 回答
3

您可以使用hg strip -r . --keep而不是hg rollback. hg backout仅当您推送了提交时才有必要。

于 2014-10-28T18:15:11.193 回答
1

您的问题的简单答案是肯定的。

如果您执行退出,那么它将显示在您的历史记录中。
如前所述,您想要执行 Strip。

这是对 mercurial 的扩展。
https://www.mercurial-scm.org/wiki/StripExtension

于 2017-01-26T05:36:56.137 回答