Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial:如何撤消更改?_Version Control_Mercurial - Fatal编程技术网

Version control Mercurial:如何撤消更改?

Version control Mercurial:如何撤消更改?,version-control,mercurial,Version Control,Mercurial,使用Mercurial时,如何撤消自上次提交以来工作目录中的所有更改?这似乎是件简单的事情,但我却无法理解 例如,假设我有4次提交。然后,我对我的代码做了一些更改。然后我决定我的更改不好,我只想回到上次提交时的代码状态。因此,我认为我应该: hg update 4 4是我最新提交的修订版。但是,Mercurial不会更改我工作目录中的任何文件。为什么不呢?是你的朋友: hg revert --all hg update将您对当前工作副本的更改与目标修订合并。将最新版本与更改的文件(=当前工

使用Mercurial时,如何撤消自上次提交以来工作目录中的所有更改?这似乎是件简单的事情,但我却无法理解

例如,假设我有4次提交。然后,我对我的代码做了一些更改。然后我决定我的更改不好,我只想回到上次提交时的代码状态。因此,我认为我应该:

hg update 4

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

是你的朋友:

hg revert --all 
hg update
将您对当前工作副本的更改与目标修订合并。将最新版本与更改的文件(=当前工作副本)合并会导致与您已有的更改相同的更改,即它不起任何作用:-)

如果你想了解Mercurial,我推荐非常棒的教程。

就可以了

它将使您恢复到上次提交

--all
将还原所有文件

有关手册页的说明,请参见链接


hg update
通常用于在从不同的回购或交换分支提取后刷新工作目录
hg up myawesomebranch
。它还可用于还原到特定版本<代码>hg up-r 12

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

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

然后

hg pull -u 

适用于我

pableu:当您的工作副本中有更改时,
hg update
的工作原理您完全正确:它将它们合并到目标版本中。当您已经处于该目标修订时,不会发生任何事情。我对答案进行了编辑,以更自信的方式表达这一点。当我这样做时,我可以看到我在检查hg状态时还原的每个文件的.orig文件。如何处理此问题?相关:
hg pull -u