在 git 差异调用中动态设置不同的差异工具

Setting a different diff tool dynamically at git diff calling

是否可以在调用 git diff 时动态设置不同的差异工具,甚至使用 shell 变量?

我不是说改变(坚持)git-config 配置,而是在 "calling time" 改变它,比如:

$ git diff oldbranch --diff-tool=path-to-my-diff-tool
$ GIT_DIFF_TOOL=path git diff oldbranch
$ export GIT_DIFF_TOOL=path; git diff oldbranch

也许不完全一样,但你可以获得完全相同的效果。 (也许 "exactly"。:-) )不要使用 git config diff.tool sometool 更改持久性本地配置,只需更改用于 this 的配置Git 命令 例如,git -c diff.tool=sometool difftool ....

可以永久使用git config name value进行的任何更改,您可以使用git -c <em>临时进行名称</em>=<em>值</em>,持续一个Git命令。

编辑:注意 git difftool 本身有一个 -t <em>tool</em> 参数,所以这个特定的例子有点傻.我只是在这里使用它来展示 -c <em>name</em>=<em>value</em> 技巧是如何工作的。

只是为了记忆添加到这里,因为它在技术上也回答了这个问题。

git difftool --tool='sometool' <branch>
# or
git difftool -t 'sometool' <branch>

参见 --tool(文档)。