我想获得存储库和所有子模块的git log
。手册上说应该使用git log --submodule
,但这对我不起作用。
----编辑-----
举个例子-我所说的:
git clone git://git.typo3.org/TYPO3v4/Core.git
cd Core
git submodule init && git submodule update
git log --submodule
git log --submodule
的输出无论如何都不包括来自任何子模块的提交,只包括更改了子模块指针的提交。少了什么?
最佳答案
听起来好像您希望--submodule
将子模块提交与git log
输出中的父存储库提交交错,但不幸的是,它并不是这样做的。--submodule
参数定义子模块差异的显示方式,因此只有在使用例如git log -p
来显示每个更改的修补程序时,才能看到其效果。通常,git log -p
只显示修补程序中子模块更改的提交之前和之后的哈希值:
$ git log -1 -p
commit 111808a2bb8c9683d3abe68df419759848ddb16e
Author: Simon Whitaker <simon@...>
Date: Fri Jan 13 10:40:41 2012 +0000
Updated ObjectiveFlickr ref
diff --git a/submodules/ObjectiveFlickr b/submodules/ObjectiveFlickr
index b37c053..1bede67 160000
--- a/submodules/ObjectiveFlickr
+++ b/submodules/ObjectiveFlickr
@@ -1 +1 @@
-Subproject commit b37c0539a536147957c01ad01cf2d8666bcbde9e
+Subproject commit 1bede67b8258ed4b95b5d3d6c2175b5e64912269
使用
--submodule
可以从列出的子模块获得实际的提交消息:$ git log -1 -p --submodule
commit 111808a2bb8c9683d3abe68df419759848ddb16e
Author: Simon Whitaker <simon@...>
Date: Fri Jan 13 10:40:41 2012 +0000
Updated ObjectiveFlickr ref
Submodule submodules/ObjectiveFlickr b37c053..1bede67:
> Set SKIP_INSTALL to YES so that Product > Archive
still builds app rather than Xcode archive