通常当我做差异时,我想在提交之前编辑我的本地文件。这在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
答案 0 :(得分:7)
如果我使用以下命令,我可以使用KDiff3编辑树内文件:
kdiff3 $LOCAL $REMOTE --output $MERGED
KDiff3在我的$PATH
中,所以重要的是将输出从$LOCAL
更改为$MERGED
。
来自git-difftool
联机帮助页:
...将使用以下可用变量调用已配置的命令行:$ LOCAL设置为包含diff前映像内容的临时文件的名称,$ REMOTE设置为临时名称包含diff后映像内容的文件。 $ MERGED是要比较的文件的名称。
由于将输出设置为$LOCAL
将写入临时文件,因此您需要写入$MERGED
,因为这将是实际的“本地”树内文件。 / p>