Eda*_*aor 53 version-control mercurial
我刚刚开始使用Mercurial,而且我遇到了一些我不理解的东西.
我对几个文件进行了更改,现在我想撤消对其中一个文件所做的所有更改(即返回上一次提交一个特定文件).
据我所见,我想要的命令是还原的.
在我链接的页面中,有以下声明:
但是,此操作不会更改工作目录的父修订版(或未提交合并时的修订版).要撤消未注册的合并,可以使用"hg update -C -r".这将把父母重置为第一个父母.
我不明白两者之间的区别(hg revertvs. hg update -C -r).任何人都可以告诉我这个区别吗?在我的情况下,我真的希望还原或更新摆脱我对文件所做的更改吗?
jk.*_*jk. 65
第一个区别是revert可以在工作副本的子集上工作,而更新在整个工作副本上工作.另一个区别是当你想要回到最后一个提交的版本以外的版本时会发生什么.
如果我们有修订(提交上限,小写是工作副本中的更改,父修订是C)
A-B-C-d
Run Code Online (Sandbox Code Playgroud)
update -C -r B 会给你
A-B-C
Run Code Online (Sandbox Code Playgroud)
将您的工作副本设置为B,任何更改都将导致从B分支(父级修订设置为B)
A-B-C
\e
Run Code Online (Sandbox Code Playgroud)
revert -r B 会给你
A-B-C-b'
Run Code Online (Sandbox Code Playgroud)
其中b'是一组更改,它们撤消中间提交的更改中的所有内容,在这种情况下,它会撤消所有C中的任何更改.现在只需加入b'集合(父级修订在C处保持不变)
| 归档时间: |
|
| 查看次数: |
9779 次 |
| 最近记录: |