hg revert
和hg backout
都会还原以前版本所做的更改。这两者有什么区别?
答案 0 :(得分:33)
鉴于变更集的历史:
A --- B --- C --- D --- E
[bad] (*)
hg revert -r B
:保持当前版本,但更新工作目录
截至修订版B
。它具有撤消修改的补丁的效果
C
,D
和E
。
hg backout -r C
:更新工作目录,使其包含 merge
修订版C的父级(B
)和当前版本,保留更改
在两个版本之间做出的(工作目录仍然包含更改
修订版D
和E
)。这具有在E
上应用补丁的效果,
撤消仅C
。
如果并非所有C
都不好,您可能想要编辑一些文件。记得要做
在任何情况下hg commit
:
A --- B --- C --- D --- E --- F
[bad] (*)