我显然在这里忽略了一些非常简单的东西,但我没有看到它。命令
webstorm diff ~/test.txt ~/test2.txt
运行JetBrains图形差异工具。我正在运行git 1.8.3.2并且有一个包含
的git .config[diff]
tool = webstorm
[difftool "webstorm"]
cmd = webstorm diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")
[difftool]
prompt = false
当我运行命令
时git difftool ~/test.txt ~/test2.txt
我在终端窗口中收到以下内容:
diff --git a/home/mark/test.txt b/home/mark/test2.txt
index 7379ce2..6ce16f1 100644
--- a/home/mark/test.txt
+++ b/home/mark/test2.txt
@@ -1,2 +1,2 @@
-blah
+bluergh
我做错了什么/不做什么?
答案 0 :(得分:2)
执行命令
GIT_TRACE=1 git difftool --tool-help
打印可能与--tool
一起使用但不可用的差异工具列表。
其次,我相信以下简化示例可能会更好:
[difftool "webstorm"]
cmd = webstorm diff "$LOCAL" "$REMOTE"
或者通过指定二进制文件或脚本的路径,例如
[difftool]
prompt = NO
external = /usr/local/bin/diffmerge
通过以下方式检查diff配置:
git config --get-regex diff
或更具体地说(用您的工具名称替换webstorm
):
git config --get difftool.webstorm.cmd
如果仍然无法正常工作,请在新存储库中对其进行测试,例如:按照以下命令:
mkdir ~/git_test && cd ~/git_test
git init && touch file && git add file && git commit -m'Adds file' -a
echo changed >> file
GIT_TRACE=1 git difftool
如果以上工作正常,请确保您的存储库配置没有任何意外情况,例如
more "$(git rev-parse --show-toplevel)"/.git/config
如果您处于合并状态(请git status
检查),则需要使用mergetool
,例如
git mergetool
添加-t tool
以指定哪个工具。列表由git mergetool --tool-help
提供。
另见man git-difftool
:
CONFIG VARIABLES
git difftool falls back to git mergetool config variables when the difftool equivalents have not been
defined.
diff.tool
The default diff tool to use.
diff.guitool
The default diff tool to use when --gui is specified.
difftool.<tool>.path
Override the path for the given tool. This is useful in case your tool is not in the PATH.
difftool.<tool>.cmd
Specify the command to invoke the specified diff tool.
See the --tool=<tool> option above for more details.
difftool.prompt
Prompt before each invocation of the diff tool.
答案 1 :(得分:0)
我遇到了同样的问题。我的git diftool
配置已在我的~/.gitconfig
中设置并且一直运行良好,但今天很奇怪git difftool
在一个仓库中工作但在另一个仓库中运行git diff
。
修复:我从git 2.11.0更新到git 2.11.1,问题似乎已经消失了。
git 2.11.1 release notes提到修复与difftool相关的回归。所描述的问题不是我所看到的,但也许修复程序无论如何都要修复它。