windows - Git diff 在子模块中不起作用

标签 windows git diff git-diff winmerge

我使用的是 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 让它可以在子模块的子模块中工作(即递归地)。
请参阅我的回答“see diff of commit on submodule”。

关于windows - Git diff 在子模块中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309529/

相关文章:

c++ - 从 C++ 中的非常大的文本文件资源中读取

c++ - 使用 yaml-cpp 0.5 DLL 时出现链接器错误

git - 如何使 "git push"在分支中包含标签?

php - 递归 array_diff()?

svn - VCS独立差异

windows - windows 7下安装yuidoc

c++ - 如何在 C++ 中急切提交分配的内存?

git 分支工作流

git - 为什么 `git commit -am` 命令正在处理未跟踪的文件(在文档的示例中)?

regex - Vim:匹配行尾的空格但不匹配由单个空格组成的行