Mercurial中的Revert和Update之间的区别是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (77)

我对几个文件进行了更改,现在我想撤消对其中一个文件所做的所有更改(即回到上次提交的某个特定文件)。

据我所知,我想要的命令是revert

在我链接的页面中,有以下声明:

此操作不会更改工作目录的父版本(或者在未提交合并的情况下修订版本)。要撤销未合并的合并,可以使用“hg update -C -r”。这将重置父母给第一父母。

我不明白两者之间的区别(hg revertvs. hg update -C -r)。

提问于
用户回答回答于

第一个区别是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'集合

扫码关注云+社区

领取腾讯云代金券