通常,当我执行差异操作时,我希望在提交之前编辑本地文件。这在Eclipse的比较视图中非常有效,因为它允许您轻松地编辑本地文件以及复制以前版本的更改。
我正试图设置git和kdiff3以同样的方式工作。当我使用kdiff3作为合并工具时,它会像预期的那样工作。但是,当我将它设置为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

最佳答案

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

kdiff3 $LOCAL $REMOTE --output $MERGED

kdiff3在my$PATH中,因此重要的一点是将输出从$LOCAL改为$MERGED
git-difftool手册页:
…将使用以下可用变量调用配置的命令行:$local设置为包含diff pre-image内容的临时文件名,$remote设置为包含diff post-image内容的临时文件名。$merged是要比较的文件的名称。
由于将输出设置为$LOCAL将写入临时文件,因此您将希望写入$MERGED,因为这将是树文件中的实际“本地”。

09-04 19:01