mercurial - hg revert 和 hg backout 之间有什么区别?

标签 mercurial revert backout

hg reverthg backout 都会还原先前版本所做的更改。两者有什么区别?

最佳答案

考虑到变更集的历史:

A --- B --- C --- D --- E
          [bad]        (*)

hg revert -r B:保留当前版本,但更新工作目录 自修订版 B 起。它具有撤销更改的补丁的效果 CDE

hg backout -r C:更新工作目录,使其包含 merge 修订版 C 的父级 (B) 和当前修订版,保留更改 在两次修订之间进行(工作目录仍然包含以下更改 修订版 DE)。这具有在 E 上应用补丁的效果, 仅撤消 C 的更改。

如果不是所有 C 都不好,您可能需要编辑一些文件。记得做 无论如何,hg commit:

A --- B --- C --- D --- E --- F
          [bad]              (*)

关于mercurial - hg revert 和 hg backout 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763034/

相关文章:

git - 我如何 "un-revert"恢复 Git 提交?

jquery - 单击链接后.draggable 恢复到原始位置

mercurial - 提交后修复Mercurial存储库中的重命名

mercurial - 告诉 Mercurial 在 merge 和更新时忽略文件

version-control - Mercurial ValueError : overflow in dirstate

mercurial - 当我运行 "hg status"时,会显示 .hg 目录中的文件

mercurial - HG推送失败;权限被拒绝 .hg/store/lock

SVN 未版本控制的同名目录已存在

mercurial - 在 mercurial 中撤销多次提交 (15)