Mercurial:你如何撤消变化?

时间:2010-07-09 15:22:21

标签: version-control mercurial

使用Mercurial时,如何撤消自上次提交以来工作目录中的所有更改?这似乎是一件简单的事情,但它正在逃避我。

例如,假设我有4次提交。然后,我对我的代码进行了一些更改。然后我决定我的更改很糟糕,我只想回到上一次提交时的代码状态。所以,我想我应该这样做:

hg update 4

4是我最新提交的修订版#。但是,Mercurial不会更改工作目录中的任何文件。为什么不呢?

4 个答案:

答案 0 :(得分:86)

hg revert可以解决问题。

它会将您恢复到最后一次提交。

--all将还原所有文件。

请参阅Man Page描述的链接。

从不同的repo或swap分支拉出后,

hg update通常用于刷新工作目录。 hg up myawesomebranch。它还可用于恢复特定版本。 hg up -r 12

答案 1 :(得分:18)

hg revert的替代解决方案是hg update -C。您可以使用此单个命令放弃本地更改并更新到某个修订版。

我通常更喜欢输入hg up -C,因为它比hg revert --all --no-backup更短:)

答案 2 :(得分:6)

hg revert是你的朋友:

hg revert --all 

hg update将您对当前工作副本的更改与目标修订合并。将最新版本与更改的文件(=当前工作副本)合并会导致您已经拥有的相同更改,即它什么都不做: - )

如果你想阅读Mercurial,我会推荐非常棒的教程Hg Init

答案 3 :(得分:1)

hg revert --all 

然后

hg pull -u 

适合我