Git mergetool生成不需要的.orig文件
当我用Kdiff3(以及其他合并工具)尝试合并冲突解决scheme时,我注意到在分辨率上创build了一个*.orig文件。 有没有办法让它不创build额外的文件? 
 从git config可能的解决scheme: 
 git config --global mergetool.keepBackup false 
执行合并后,带有冲突标记的原始文件可以保存为扩展名为
.orig的文件。
如果此variables设置为false则不会保留此文件。
默认为true(即保留备份文件)。
另一种方法是不添加或忽略这些文件,正如在这个gitguru文章中所build议的那样 ,
git mergetool用“.orig”后缀保存文件的合并冲突版本。
请确保在添加和提交合并之前将其删除,或将*.orig添加到.gitignore。
贝里克 在评论中build议使用:
 find . -name \*.orig find . -name \*.orig -delete 
Charles Bailey在他的回答中build议要注意内部diff工具设置 ,这些设置也可以生成这些备份文件,不pipe是什么git设置。
- kdiff3有自己的设置(参见手册中的“ 目录合并 ”)。
-  像WinMerge等其他工具可以有自己的备份文件扩展名(WinMerge: .bak, 如其手册中所述 )。
所以你也需要重置这些设置。
 你必须小心使用kdiff3因为git mergetool可以configuration为在合并时保存一个.orig文件, kdiff3的默认行为是独立于git mergetool保存一个.orig备份文件。 
 您必须确保mergetool备份已closures: 
 git config --global mergetool.keepBackup false 
而且kdiff3的设置被设置为不创build备份:
 Configure/Options => Directory Merge => Backup Files (*.orig) 
要清楚,正确的git命令是:
 git config --global mergetool.keepBackup false 
其他两个答案都在命令行中有拼写错误,会导致错误或无法正常工作。
我用这个来清理所有以“.orig”结尾的文件:
 function git-clean-orig { git status -su | grep -e"\.orig$" | cut -f2 -d" " | xargs rm -r } 
 如果你是一个吓人的猫:)你可以离开最后一部分,只是列出它们(或者如果你想批准每个删除,离开-r ): 
 function git-show-orig { git status -su | grep -e"\.orig$" | cut -f2 -d" " } 
通过configurationKDiff3可以禁用保存.orig文件的选项

 除了作为长期解决scheme提供的正确答案之外,您可以使用git通过git clean -f命令为您删除所有不必要的文件,但首先使用git clean --dry-run确保不会有意外的情况发生。 
这有一个好处,就是使用Git的testing内置function,通过特定于您的OS / shell的脚本来删除这些文件。
 git config --global mergetool.keepBackup false 
这应该比Beyond Compare(as mergetool)也适用
我只是使用该命令
 git clean -n *.orig 
检查,以确保只有文件,我想删除列出然后
 git clean -f *.orig 
视窗:
-  在文件Win/Users/HOME/.gitconfig设置mergetool.keepTemporaries=false
-  在文件git/libexec/git-core/git-mergetool,在函数cleanup_temp_files()的else块中添加rm -rf -- "$MERGED.orig"。