使用KDiff3使用Git编辑差异

Pat*_*iak 13 git kdiff3

通常当我做差异时,我想在提交之前编辑我的本地文件.这在Eclipse的比较视图中非常有效,因为它允许您轻松编辑本地文件以及复制先前版本的更改.

我试图设置Git和KDiff3以同样的方式工作.当我使用KDiff3作为我的mergetool时,它按预期工作.但是,当我将其设置为difftool时,它为我提供了一个只读视图,因此我无法进行任何编辑.根据文档(http://kdiff3.sourceforge.net/doc/documentation.html),我希望--output选项能够给我两个我想要的文件合并,但事实并非如此.我的.gitconfig的相关部分:

[diff]
  tool = kdiff3
[difftool "kdiff3"]
  cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3 $LOCAL $REMOTE --output $LOCAL
  trustExitCode = false
Run Code Online (Sandbox Code Playgroud)

Jac*_*wig 7

如果我使用以下命令,我可以使用KDiff3编辑树内文件:

kdiff3 $LOCAL $REMOTE --output $MERGED
Run Code Online (Sandbox Code Playgroud)

KDiff3在我的中$PATH,所以重要的一点是改变输出$LOCAL而不是$MERGED.

git-difftool联机帮助页:

...将使用以下可用变量调用已配置的命令行:$ LOCAL设置为包含diff前映像内容的临时文件的名称,$ REMOTE设置为包含该变量的临时文件的名称diff后映像的内容.$ MERGED是要比较的文件的名称.

由于设置输出$LOCAL将写入临时文件,因此您将要写入,$MERGED因为这将是实际的"本地"树内文件.