Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 处理以前签入时意外忽略的文件的最佳方法?_Mercurial - Fatal编程技术网

Mercurial 处理以前签入时意外忽略的文件的最佳方法?

Mercurial 处理以前签入时意外忽略的文件的最佳方法?,mercurial,Mercurial,处理这种情况的最佳方法是什么“哎呀,我忘了在上次签入时包含几个文件”?而不是用一个附加的签入,注释“哎呀,忘了这些文件” 如果错误的提交已经被推送或拉取到任何地方,则不应使用这些选项;它们会重写历史记录,并且在发布重写的提交时会导致问题。 这两种解决方案都假设您没有进行任何干预提交 根据您运行的Mercurial版本是否足够新: hg add <missing files> hg commit --amend 如果使用mercurial 2.2或更高版本,您可能应该使用amend标

处理这种情况的最佳方法是什么“哎呀,我忘了在上次签入时包含几个文件”?而不是用一个附加的签入,注释“哎呀,忘了这些文件”

如果错误的提交已经被推送或拉取到任何地方,则不应使用这些选项;它们会重写历史记录,并且在发布重写的提交时会导致问题。

这两种解决方案都假设您没有进行任何干预提交

根据您运行的Mercurial版本是否足够新:

hg add <missing files>
hg commit --amend

如果使用mercurial 2.2或更高版本,您可能应该使用amend标志
hg commit--amend
。从帮助中:

--amend标志可用于使用新的提交来修改工作目录的父目录,该提交包含除hg status当前报告的更改之外的父目录中的更改(如果有)。旧提交存储在.hg/strip backup中的备份包中(有关如何恢复它,请参阅hg help bundle和hg help unbundle)

否则,您可以使用回滚(不建议使用,因为您正在重写历史记录)
hg rollback

hg rollback
hg add <missing files>
hg commit
应小心使用此命令。回滚只有一个级别,无法撤消回滚。它还将在最后一次事务时恢复dirstate,并丢失自那时以来的任何dirstate更改。此命令不会更改工作目录

或者使用
hg backout

在当前工作目录中准备一个具有REV undone效果的新变更集。 如果REV是工作目录的父目录,那么这个新变更集将自动提交。否则,hg需要合并更改,合并的结果将保持未提交状态