在.gitconfig中配置diff工具

12 浏览
0 Comments

在.gitconfig中配置diff工具

如何配置Git以使用.gitconfig文件中的不同工具进行差异比较?\n我在我的.gitconfig文件中有以下内容:\n[diff]\n tool = git-chdiff #也尝试过/bin/git-chdiff\n这并不起作用;它只是打开了常规的命令行diff。当我执行\nexport GIT_EXTERNAL_DIFF=git-chdiff\n然后git diff将打开外部的差异比较工具(所以我知道外部的差异比较工具脚本工作正常)。我在.diffconfig配置中的差异工具上有什么问题吗?

0
0 Comments

问题出现的原因:在使用git diff命令时,没有配置合适的diff工具。

解决方法:通过修改.gitconfig文件或使用终端命令来配置diff工具。

文章内容如下:

有人已经给出了一个99%的答案,但是还有一步被遗漏了。(我的答案将来自于OS X,所以你需要根据实际情况更改文件路径。)

你可以在~/.gitconfig文件中进行如下修改:

[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /Applications/Diffmerge.app/Contents/MacOS/diffmerge $LOCAL $REMOTE

这样就可以修复diff工具的问题了。你也可以通过终端命令来直接修复,而不需要直接编辑~/.gitconfig文件:

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/Applications/DiffMerge.appContents/MacOS/diffmerge \$LOCAL \$REMOTE"

其他人遗漏的1%是,当使用这个工具时,不能只运行git diff myfile.txt命令;你需要运行git difftool myfile.txt命令。

对于这最后1%的补充点,我点赞。没有什么比一个完全钉好的钉子更让人满意了 😉

有没有办法将其设置为默认工具呢?

很好,你漏掉了一步git config --global --add difftool.prompt false。;)

0
0 Comments

问题:如何在.gitconfig中配置diff工具?

原因:Git提供了一系列预配置的difftools(kdiff3、kompare、tkdiff、meld、xxdiff、emerge、vimdiff、gvimdiff、ecmerge、diffuse、opendiff、p4merge和araxis),同时也允许用户指定自己的difftool。如果要使用预配置的difftool(例如"vimdiff"),只需将以下内容添加到~/.gitconfig文件中:

[diff]

tool = vimdiff

这样,就可以运行"git difftool"并使用所选择的工具。

解决方法:如果想要指定自己的difftool,则需要进行一些额外的配置工作。具体操作可以参考:How do I view 'git diff' output with my preferred diff tool/ viewer?

对于预配置的"out-of-the-box" difftool是什么意思呢?为了设置一个不在列表中的外部diff工具(如"winMerge"),我必须按照你在帖子中提到的设置进行操作,然后一切都开始正常工作,不需要任何额外的配置。那么这是否意味着git也支持"winMerge"这个预配置的工具呢?根据我对你帖子的理解,设置一个不被git预配置的difftool需要一些额外的工作/设置/配置。

文章整理完毕,内容如上所示。

0
0 Comments

问题的原因是用户在执行git config --global diff.tool diffmerge命令后,使用git diff myfile.txt时仍然得到了默认的Unix diff。可能是因为用户在本地配置中定义了其他的diff工具。

解决方法是通过执行git difftool myfile.txt命令来使用指定的工具进行diff操作。用户可以参考链接nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy,了解如何为diffmerge传递正确的参数。

0