Git diff 在子模块中不起作用

Git diff doesn't work within submodule

我在 Windows 10,使用 Git 命令行并将 WinMerge 设置为我的 difftool。

我有一个包含多个子模块的存储库。当 运行ning "git diff" 和 "git difftool" 在主仓库中时,它正确地使用 WinMerge 来分析文件。当我导航到一个子模块并且 运行 "git diff" 或 "git difftool" 它什么都不做。

这是我的.git配置:

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = winmergeu -e \"$LOCAL\" \"$REMOTE\"

这是我在父仓库中 git diff 时得到的结果:

$ git diff
diff --git a/content/themes/baseline-theme b/content/themes/baseline-theme
--- a/content/themes/baseline-theme
+++ b/content/themes/baseline-theme
@@ -1 +1 @@
-Subproject commit 30901f86ba56be092f1ed5c7095204abe7f64b27
+Subproject commit 30901f86ba56be092f1ed5c7095204abe7f64b27-dirty

当我 运行 在子模块中执行相同的命令时,我没有得到任何输出。

我该如何解决这个问题?

您至少需要 Git 2.11 才能 git diff --submodule=diff 工作。

和 2.14 使其在子模块的子模块中工作(即递归)。
请参阅我的回答“”。