如果创建一个带有git submodule add [remote URL]
的git子模块并在子模块中提交,则父项目中的git diff
显示类似
diff --git a/validation-tools b/validation-tools index 78208b2..8941219 160000 --- a/validation-tools +++ b/validation-tools @@ -1 +1 @@ -Subproject commit 78208b2e64422a85509f0462b944ef8fbde93f48 +Subproject commit 8941219dd4935e97a585295ec34fb190e601b7ab
为了查看子模块中的不同,必须将cd
放入其中,并将两个哈希值复制为git diff
或git difftool
的参数。我正在寻找一种避免复制的快捷方式(如果可能的话还有cd
)。
我在Ubuntu 17.04上使用git
2.11.0。
答案 0 :(得分:2)
您可以使用:
git diff --submodule=diff
但是,在您正在使用的Git版本(2.11)中,如果您的子模块中包含嵌套的子模块,则此命令将失败。 (Version 2.14.1 resolves this issue但是。)
如果出于某种原因,你无法升级你的Git并且你有嵌套的子模块,你可以尝试:
git submodule foreach --recursive git diff --name-status