Mercurial中的还原与更新的区别
我刚开始使用Mercurial,而且遇到了一些我不明白的地方。
我对几个文件进行了修改,现在我想撤销对其中一个文件所做的所有更改(即回到上次提交的某个特定文件)。
据我所知,我想要的命令是恢复 。
在我链接到的页面中,有以下声明:
但是,此操作不会更改工作目录的父版本(或者在未提交合并的情况下修订版本)。 要撤销未合并的合并,可以使用“hg update -C -r”。 这将把父母重置为第一父母。
我不明白这两者之间的区别( hg revert
vs. hg update -C -r
)。 任何人都可以启发我的差异? 在我的情况下,我真的想要还原或更新去摆脱我对文件的变化?
谢谢
第一个区别是恢复可以在工作副本的一个子集上工作,而更新在整个工作副本上工作。 另一个区别是当你想回到最后提交的版本以外的版本。
如果我们有修改(上限是承诺,小写是在工作副本的变化,父母的修改是C)
ABCd
update -C -r B
会给你
ABC
将工作副本设置为B,任何更改都会导致从B分支(父版本设置为B)
ABC \e
revert -r B
会给你
ABCb'
其中b'是一组解除中间提交更改中的所有内容的变更,在这种情况下,它将取消C中的所有更改。现在,只需joinb'set(父C不变)