在Mercurial中使用hg还原

我正在使用Mercurial。 我做了一个仓库的克隆。 为了debugging,我在java文件中更改了几行代码。 我没有提交这些更改。 我只是想恢复到原来的状态,在存储库中find。 我试过hg revert filename.java ,它恢复它,但现在当我做hg status ,我看到现在添加在我的文件夹中的其他文件,如:

 ? filename.java.orig 

我可以只删除这些文件,为什么当我使用还原时Mercurial?

是的,你可以删除它们。 这是一个安全function,以防止您恢复某些您不想恢复的内容。

您也可以使用标志 – 无备份和.orig文件将不会被创build

 hg revert --no-backup filename.java 

从Mercurial 2.0开始,您可以使用标志-C来压缩创build的.orig文件

 hg revert -C filename.java 

我发现吹扫延伸得心应手。 用法:

 hg purge 

“此扩展名清除Mercurial未跟踪的所有文件和目录” – 包括.orig文件,但不包括忽略的文件(除非使用–all)。

正如其他人已经指出的,你可以安全地删除这些文件。

你可以通过从你的仓库的根目录执行这个命令来删除它们:

 rm `hg st -un | grep orig` 

如果你想恢复,而不关心备份原始文件,你想要的命令是:

 hg update -C 

这些都是你恢复之前的文件的副本。 如果您不需要这些,可以通过手动或使用清除扩展来删除它们:

 hg clean 

这些备份文件可以创build合并和恢复操作(参见手册页 )。 你可以添加一个忽略规则,或者直接删除它们,如果你不再需要它们的话。

这些是相当普遍的,由各种操作产生的。 浏览一下我工作的一个中等规模的仓库,发现其中的237个。 我不喜欢删除可能最终变得有用的东西,而且我没有理由用相同的后缀命名合法文件,所以我将下列内容添加到.hgignore中:

 .\.orig$ 

我自己做了这个batch file。

 IF "%1%" == "d" ( del /s *.orig del /s *.rej ) ELSE ( del /s /p *.rej del /s /p *.orig ) 

帮助:将这个内容保存为orig.bat

  1. 运行orig d删除所有拒绝文件和原始文件,无需确认
  2. 运行orig删除带确认的文件[安全机制]

希望这是有帮助的。