当我使用Kdiff3(以及我尝试的其他合并工具)进行合并冲突解决时,我注意到在解析时创建了一个*.orig
文件。 有没有办法让它不创建额外的文件?
#1楼
我用它来清理所有以“.orig”结尾的文件:
function git-clean-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" " | xargs rm -r
}
如果你是一个scaredy-cat :)你可以离开最后一部分只是为了列出它们(或者如果你想批准每次删除,请不要使用-r
):
function git-show-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" "
}
#2楼
来自git config
可能解决方案:
git config --global mergetool.keepBackup false
执行合并后,带有冲突标记的原始文件可以保存为扩展名为
.orig
的文件。
如果此变量设置为false
则不保留此文件。
默认为true
(即保留备份文件)。
另一种方法是不添加或忽略这些文件,如本gitguru文章所述 ,
git mergetool
使用“.orig
”后缀保存文件的合并冲突版本。
确保在添加和提交合并之前删除它,或者将*.orig
添加到.gitignore
。
find . -name \*.orig
find . -name \*.orig -delete
Charles Bailey建议在他的回答中注意内部差异工具设置 ,这些设置也可以生成那些备份文件,无论git设置是什么。
所以你也需要重置这些设置。
#3楼
你必须要小心使用kdiff3
因为git mergetool
可以配置为在合并期间保存.orig
文件, kdiff3
的默认行为是也可以独立于git mergetool
保存.orig
备份文件。
您必须确保mergetool
备份已关闭:
git config --global mergetool.keepBackup false
并且kdiff3的设置也设置为不创建备份:
Configure/Options => Directory Merge => Backup Files (*.orig)
#4楼
要清楚,正确的git命令是:
git config --global mergetool.keepBackup false
其他两个答案在命令行中都有拼写错误,导致它失败或无法正常工作。
#5楼
除了作为长期解决方案提供的正确答案之外,您可以使用git使用git git clean -f
命令为您删除所有不必要的文件,但首先使用git clean --dry-run
以确保不会发生任何意外情况。
这样做的好处是可以使用经过测试的Git内置功能,而不是特定于OS / shell的脚本来删除文件。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3161772