通常,当我执行差异操作时,我希望在提交之前编辑本地文件。这在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
,因为这将是树文件中的实际“本地”。