Ake*_*eem 454 git version-control
当我使用Kdiff3(和我试过的其他合并工具)进行合并冲突解决时,我注意到在解析时*.orig创建了一个文件.有没有办法让它不创建额外的文件?
Von*_*onC 729
可能的解决方案来自git config:
git config --global mergetool.keepBackup false
Run Code Online (Sandbox Code Playgroud)
执行合并后,带有冲突标记的原始文件可以保存为带
.orig扩展名的文件.
如果将此变量设置false为,则不保留此文件.
默认为true(即保留备份文件).
另一种方法是不添加或忽略这些文件,如本gitguru文章所述,
git mergetool使用".orig"后缀保存文件的合并冲突版本.
确保在添加和提交合并之前将其删除或添加*.orig到您的.gitignore.
find . -name \*.orig
find . -name \*.orig -delete
Run Code Online (Sandbox Code Playgroud)
Charles Bailey建议在他的回答中注意内部差异工具设置,这些设置也可以生成那些备份文件,无论git设置是什么.
所以你也需要重置这些设置.
CB *_*ley 81
使用时必须要小心,kdiff3因为git mergetool可以将其配置为.orig在合并期间保存文件,默认行为kdiff3是.orig独立保存备份文件git mergetool.
您必须确保mergetool备份已关闭:
git config --global mergetool.keepBackup false
Run Code Online (Sandbox Code Playgroud)
并且kdiff3的设置也设置为不创建备份:
Configure/Options => Directory Merge => Backup Files (*.orig)
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 33
要清楚,正确的git命令是:
git config --global mergetool.keepBackup false
Run Code Online (Sandbox Code Playgroud)
其他两个答案在命令行中都有拼写错误,导致它失败或无法正常工作.
kgh*_*tie 25
我用它来清理所有以".orig"结尾的文件:
function git-clean-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" " | xargs rm -r
}
Run Code Online (Sandbox Code Playgroud)
如果你是一个scaredy-cat :)你可以将最后一部分留下来列出它们(或者-r如果你想批准每次删除,请不要这样做):
function git-show-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" "
}
Run Code Online (Sandbox Code Playgroud)
小智 11
我只是使用命令
git clean -n *.orig
Run Code Online (Sandbox Code Playgroud)
检查以确保只列出我要删除的文件
git clean -f *.orig
Run Code Online (Sandbox Code Playgroud)
hal*_*onj 10
除了作为长期解决方案提供的正确答案之外,您可以使用git使用该git clean -f命令一次性删除所有不必要的文件,但git clean --dry-run首先使用以确保不会发生任何意外情况.
这样做的好处是可以使用经过测试的Git内置功能,而不是特定于OS/shell的脚本来删除文件.
| 归档时间: |
|
| 查看次数: |
103686 次 |
| 最近记录: |