Mercurial的Sourcetree。撤消尚未推送的提交

时间:2015-02-03 23:42:04

标签: mercurial atlassian-sourcetree

我有一个Mercurial存储库并且已经提交但没有推送它。 我想撤消提交 我查看了the help here,但菜单选项“将Master重置为此提交”并不适合我。 我认为该命令将是hg rollback。 Sourcetree中是否有菜单选项来执行此操作?

1 个答案:

答案 0 :(得分:2)

hg rollback已弃用。目前的建议是使用hg commit --amend

来自http://www.selenic.com/mercurial/hg.1.html#commit

  

--amend标志可用于修改工作目录的父级,其中包含父级中的更改以及hg status当前报告的更改(如果有)。旧提交存储在.hg / strip-backup的备份包中(请参阅hg help bundle和hg help unbundle,了解如何恢复它)。

     

除非另有说明,否则消息,用户和日期取自修改后的提交。如果未在命令行中指定消息,编辑器将打开并显示修改后的提交消息。

根据http://www.sourcetreeapp.com/update/ReleaseNotes.html,Sourcetree能够修改版本1.9.0以来的提交,但是older thread in answers.atlassian.com建议在这种情况下使用条带功能,这似乎是一个很好的解决方案。< / p>

从该线程(支持修改之前):

  

在Mercurial中,您可以“剥离”&#39;提交,SourceTree在日志视图上下文菜单中公开。如果右键单击一个提交并从这里选择“删除”,它将在所有子进程中销毁该提交。但是,如果选中“不修改工作副本”框,则可以保留所有更改,这些更改将成为未经修改的更改,然后您可以再次提交。所以这类似于修改最后一次提交的想法&#39;如果您在最近的提交中使用它并检查“不要修改工作副本”#39;框(非常重要!),然后再次提交,虽然Mercurial做的有点不同。