【发布时间】:2012-09-11 14:58:42
【问题描述】:
我不小心在本地提交了一堆文件,但没有推送。 所以基本上我想做的是删除这个我的提交,然后推送一些其他的更改。
我可以通过 Backout-ing 删除提交,然后我必须在本地提交,所以它实际上是在本地删除的。
所以我的问题是,如果我进行推送,我的意外提交及其相应的恢复日志是否会公开可见?
【问题讨论】:
标签: mercurial tortoisehg
我不小心在本地提交了一堆文件,但没有推送。 所以基本上我想做的是删除这个我的提交,然后推送一些其他的更改。
我可以通过 Backout-ing 删除提交,然后我必须在本地提交,所以它实际上是在本地删除的。
所以我的问题是,如果我进行推送,我的意外提交及其相应的恢复日志是否会公开可见?
【问题讨论】:
标签: mercurial tortoisehg
听起来hg rollback 是你想要的命令。
hg backout <REV> 创建一个新的提交,以逆转在<REV> 中所做的更改。原始提交和回退提交都将保留在您的历史记录中。这是您在将错误提交推送到公共位置后必须修复的少数选项之一。
但是在这种情况下你还没有推向公众,所以有更好的解决方案。
如果错误提交是最后一次提交(即您的提示),那么您可以使用 hg rollback(在 TortoiseHg 的 Repository 菜单下)。这个命令就像对提交的“撤消”。
如果错误提交在您的历史记录中的其他位置(但仍未被推送到公共存储库),您还可以使用 mq extension 重写您的历史记录的那部分。
【讨论】:
您可以使用hg strip -r . --keep 代替hg rollback。 hg backout 只有在你推送了提交时才需要。
【讨论】:
您的问题的简单答案是肯定的。
如果您执行退出,那么它将显示在您的历史记录中。
如前所述,您想要执行 Strip。
这是对 mercurial 的扩展。
https://www.mercurial-scm.org/wiki/StripExtension
【讨论】: