处理这种情况的最佳方法是什么“哎呀,我忘了在之前的办理登机手续中包含几个文件”。 。 。 ?而不是通过注释“哎呀,忘记这些文件”进行额外的检查。 。 。 ?
答案 0 :(得分:2)
如果错误提交已被推送或拉到任何地方,则不应使用这些内容;它们会重写历史记录,并且在发布重写的提交时会产生问题。
这两种解决方案都假设您没有进行任何干预提交。
取决于您是否正在运行最新版本的Mercurial:
hg add <missing files>
hg commit --amend
我不确定它是在哪个版本中引入的。
前amend
替代方案为rollback
:
hg rollback
hg add <missing files>
hg commit
答案 1 :(得分:0)
如果使用mercurial 2.2或更高版本,您应该使用修正标志hg commit --amend
。来自帮助:
--amend标志可用于修改工作目录的父级,其中包含父级中的更改以及hg status当前报告的更改(如果有)。旧提交存储在.hg / strip-backup的备份包中(请参阅hg help bundle和hg help unbundle,了解如何恢复它)。
否则你可以使用回滚(不推荐,因为你正在重写历史记录)hg rollback
:
应谨慎使用此命令。只有一个级别的回滚,并且无法撤消回滚。它还将在最后一次交易时恢复死亡,从那时起失去任何恶化的变化。此命令不会更改工作目录。
或使用hg backout
:
在当前工作目录中准备一个具有REV撤消效果的新变更集。 如果REV是工作目录的父级,则会自动提交此新变更集。否则,hg需要合并更改,并且合并的结果将保持未提交状态。