我正在使用Mercurial。我做了一个存储库的克隆。为了调试,我在java文件中更改了几行代码。我没有提交这些更改。我只是想将它们恢复到原始状态,就像在存储库中找到的那样。我尝试了hg revert filename.java
,它确实还原了它,但现在当我hg status
时,我看到我的文件夹中添加了其他文件,如:
? filename.java.orig
我可以删除这些文件,为什么Mercurial在使用revert时会创建它们?
答案 0 :(得分:86)
您还可以使用标志--no-backup,并且不会创建.orig文件
hg revert --no-backup filename.java
从Mercurial 2.0开始,您可以使用标志-C来压缩.orig文件的创建
hg revert -C filename.java
答案 1 :(得分:47)
是的,你可以删除它们。这是一个安全功能,以防你还原你不想恢复的东西。
答案 2 :(得分:23)
我发现purge extension方便了。用法:
hg purge
“此扩展程序清除Mercurial未跟踪的所有文件和目录” - 包括.orig文件,但不包括被忽略的文件(除非您使用--all)。
答案 3 :(得分:8)
正如其他人所指出的那样,您可以安全地删除这些文件。
您可以通过从您的仓库的根目录执行此命令来删除它们:
rm `hg st -un | grep orig`
如果您想要还原,并且根本不关心备份原始文件,那么您需要的命令是:
hg update -C
答案 4 :(得分:6)
这些是您还原之前的文件副本。如果您不需要,可以手动或使用Purge extension:
删除它们hg clean
答案 5 :(得分:5)
可以为合并和还原操作创建这些备份文件(参见man page)。您可以根据需要添加忽略规则,或者只是在不再需要时删除它们。
答案 6 :(得分:0)
这些是相当普遍的,由各种操作产生。看一眼我工作的中等大小的存储库就找到了其中的237个。我不喜欢删除可能最终有用的内容,而且我没有理由为具有相同后缀的合法文件命名,所以我将以下内容添加到.hgignore中:
.\.orig$
答案 7 :(得分:0)
我自己制作了这个批处理文件。
IF "%1%" == "d" (
del /s *.orig
del /s *.rej
) ELSE (
del /s /p *.rej
del /s /p *.orig
)
帮助: 将此内容保存为 orig.bat
orig d
,一次删除所有拒绝和原始文件,无需确认orig
以删除确认[安全机制] 希望这有用。