【发布时间】:2011-12-19 11:41:17
【问题描述】:
在我最后一次提交之后,我写了一堆代码。在再次提交之前,我运行了hg add。
它添加了一些我不感兴趣的文件,所以我运行了
$ hg revert --all
认为所有添加的文件都会消失。它们确实消失了,但我也恢复了自上次提交以来编写的所有代码,这意味着大量工作丢失了!我有哪些选择?
【问题讨论】:
标签: mercurial
在我最后一次提交之后,我写了一堆代码。在再次提交之前,我运行了hg add。
它添加了一些我不感兴趣的文件,所以我运行了
$ hg revert --all
认为所有添加的文件都会消失。它们确实消失了,但我也恢复了自上次提交以来编写的所有代码,这意味着大量工作丢失了!我有哪些选择?
【问题讨论】:
标签: mercurial
当您hg revert 一个文件(或--all 文件)时,Mercurial以另一个名称保存该文件的备份。这是为了让你更难失去工作。如果该文件名为foo,您将拥有原始版本的foo.orig。
你可以使用
$ hg status --all --include "**.orig"
查看工作副本中的所有.orig 文件。将您需要的内容移回,重新添加并提交。
在相关说明中:人们有时会将 --no-backup 标志添加到他们的 [defaults] 部分,以摆脱 .orig 文件的 Mercurial 分散。我认为这是一个非常糟糕的主意...只需忽略 .orig 文件,而是添加
syntax: glob
*.orig
到您的.hgignore 文件。这样更安全,有一天你会很高兴你有这些 .orig 文件在周围:-)
【讨论】: