处理事先登记意外遗漏的文件的最佳方法?

时间:2013-03-22 15:30:09

标签: mercurial

处理这种情况的最佳方法是什么“哎呀,我忘了在之前的办理登机手续中包含几个文件”。 。 。 ?而不是通过注释“哎呀,忘记这些文件”进行额外的检查。 。 。 ?

2 个答案:

答案 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需要合并更改,并且合并的结果将保持未提交状态。