在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
- 运行
orig d
删除所有拒绝文件和原始文件,无需确认 - 运行
orig
删除带确认的文件[安全机制]
希望这是有帮助的。