Git diff 在子模块中不起作用



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

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

这是我的 .gitconfig:

[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 让它在子模块的子模块中工作(即递归)。
请参阅我的答案"查看子模块上提交的差异"。

最新更新