我刚刚开始使用Mercurial,我遇到了一些我不理解的事情。
我对几个文件进行了更改,现在我想撤消对其中一个文件所做的所有更改(即,返回到我对一个特定文件的上次提交)。
据我所知,我想要的命令是revert。
在我链接的页面中,有以下语句:
但是,此操作不会更改工作目录的父修订版本(或未提交合并的情况下的修订版本)。要撤消未提交的合并,可以使用"hg update -C -r“。这会将父级重置为第一个父级。
我不明白这两者(hg revert
和hg update -C -r
)之间的区别。有没有人能告诉我有什么不同?在我的例子中,我真的希望恢复或更新去掉我对文件所做的更改吗?
发布于 2010-03-24 19:18:07
第一个区别是revert可以在工作副本的一个子集上工作,而update在整个工作副本上工作。另一个区别是,当您想要返回到上次提交的版本以外的版本时,会发生什么情况。
如果我们有修订(大写是提交的,小写是工作副本中的更改,父修订是C)
A-B-C-d
update -C -r B
将为您提供
A-B-C
将工作副本设置为B时,任何更改都将导致从B分支(父修订设置为B)
A-B-C
\e
revert -r B
将为您提供
A-B-C-b'
其中b‘是一组更改,它撤消中间提交的更改中的所有更改,在这种情况下,它撤消所有C。任何更改现在只是加入b’集(父修订在C处保持不变)
https://stackoverflow.com/questions/2506803
复制相似问题