2012-01-12 158 views
5

我想获取存储库和所有子模块的git log。该手册说应该使用git log --submodule,但这不适用于我。包含/插入子模块的Git历史记录提交

------- -------编辑

为例 - 我跑:

git clone git://git.typo3.org/TYPO3v4/Core.git 
cd Core 
git submodule init && git submodule update 
git log --submodule 

git log --submodule输出不包括任何提交无论如何 - 子模块指针已被更改的提交。

什么是缺失?

+0

怎么办你的意思是它不起作用?实际上,子模块中的提交显示在提交范围中,您正在父回购中运行git-log? – Cascabel 2012-01-13 05:48:41

+0

您初始化并更新了您的子模块吗? ('git subomdules init' /'git submodules update') – VonC 2012-01-13 07:37:27

回答

6

听起来好像您期待--submodule将子模块提交与来自git log输出中父存储库的子提交进行交错,但不幸的是,这不是它的作用。

--submodule参数定义了子模块差异的显示方式 - 因此,如果您使用的是模板,则只会看到其效果。 git log -p为每个更改显示补丁。通常情况下,git log -p将只显示了前提交在补丁一个子模块的变更后的哈希值:

$ git log -1 -p 
commit 111808a2bb8c9683d3abe68df419759848ddb16e 
Author: Simon Whitaker <[email protected]> 
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 <[email protected]> 
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