当我做一个合并冲突解决与Kdiff3(和其他合并工具我尝试),我注意到决议a *。创建Orig文件。有没有办法让它不创建额外的文件?


当前回答

除了作为长期解决方案提供的正确答案外,您还可以使用git clean -f命令一次性删除所有不必要的文件,但首先要使用git clean——dry-run,以确保不会发生意外的情况。

这样做的好处是使用Git的测试内置功能,而不是特定于OS/shell的脚本来删除文件。

其他回答

我用它来清理所有以“。trans”结尾的文件:

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" "
}

如果你在Windows机器上工作,你可以用这个命令关闭备份

git config --global mergetool.keepBackup false

如果您不想这样做,可以使用powershell命令轻松删除所有的. trans文件

ls -Recurse C:\path\to\repository\*.orig | rm

需要明确的是,正确的git命令是:

git config --global mergetool.keepBackup false

其他两个答案在命令行中都有拼写错误,这将导致它失败或不能正常工作。

保存. trans文件的选项可以通过配置KDiff3禁用

你必须小心使用kdiff3,因为git mergetool可以配置为在合并过程中保存一个.orig文件,kdiff3的默认行为是独立于git mergetool保存一个.orig备份文件。

你必须确保mergetool备份是关闭的:

git config --global mergetool.keepBackup false

另外,kdiff3的设置设置为不创建备份:

Configure/Options => Directory Merge => Backup Files (*.orig)