使用KDiff3使用Git编辑差异

时间:2012-09-25 19:08:48

标签: 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

1 个答案:

答案 0 :(得分:7)

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

kdiff3 $LOCAL $REMOTE --output $MERGED

KDiff3在我的$PATH中,所以重要的是将输出从$LOCAL更改为$MERGED

来自git-difftool联机帮助页:

  

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

由于将输出设置为$LOCAL将写入临时文件,因此您需要写入$MERGED,因为这将是实际的“本地”树内文件。 / p>