如何放弃尚未提交的所有Mercurial更改

时间:2010-05-05 12:28:15

标签: mercurial

自Mercurial上次提交以来,您如何放弃所有存储库更改?

认为这是revert命令,因为这实际上会将工作目录更新为最后一次提交。我只想撤消存储库中的更改(添加文件,删除文件等)。

但是,我是Mercurial的新手,所以我可能会遗漏一些东西。

3 个答案:

答案 0 :(得分:8)

你确实想要revert。两个命令revertupdate是免费的。它们都会更新工作目录中的文件,但update也会更新父版本(请参阅hg parents),而revert则不会。如果您的父版本是tip(通常是这样),那么在这种情况下要么做,要么更喜欢revert

示例:

ry4an@hail [~/hg/test] % hg stat
? newfile
? output.patch
? this
ry4an@hail [~/hg/test] % hg add newfile
ry4an@hail [~/hg/test] % hg stat
A newfile
? output.patch
? this
ry4an@hail [~/hg/test] % hg revert --all
forgetting newfile
ry4an@hail [~/hg/test] % hg stat
? newfile
? output.patch
? this

答案 1 :(得分:2)

上一个问题可能有所帮助: Mercurial — revert back to old version and continue from there

特别是马丁的“备忘单”答案。

答案 2 :(得分:2)

可以使用以下命令撤消对本地副本尚未提交到存储库的任何更改:

hg update -C

即更新清洁。