Mercurial:你如何撤消变化?

Joh*_*ood 58 version-control mercurial

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

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

hg update 4
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*han 87

hg revert 会做的.

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

--all 将还原所有文件.

请参阅Man Page描述的链接.

hg update从不同的repo或交换分支拉出后,通常用于刷新工作目录.hg up myawesomebranch.它还可用于恢复特定版本. hg up -r 12.


And*_*ikh 18

另一种解决方案hg reverthg update -C.您可以使用此单个命令放弃本地更改并更新到某些修订.

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


pab*_*leu 6

hg revert 是你的朋友:

hg revert --all 
Run Code Online (Sandbox Code Playgroud)

hg update使用目标修订将您的更改合并到当前工作副本.将最新版本与已更改的文件(=当前工作副本)合并会导致您已经拥有的相同更改,即它不执行任何操作:-)

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