我用
git ls-tree ed2d14dc10cb9fd6b92a076cd52a8769b05c19cc submodule-name | grep -E -o "[0-9a-f]{40}"
获取主项目提交为ed2d14dc10cb9fd6b92a076cd52a8769b05c19cc?
的子模块的提交意味着,如果主项目提交是ed2d14dc10cb9fd6b92a076cd52a8769b05c19cc
,则获取该提交的子模块的最新提交哈希值。
如何使用此命令递归检索每个子模块的所有提交哈希值,并使用每个子模块的最新哈希执行git日志以获取两个哈希值之间的更改日志?
例如,如果主项目的提交哈希为A,那么我想在A处获取子模块子模块1的最新提交哈希:
hash1 = git ls-tree A submodule1 | grep -E -o "[0-9a-f]{40}"
如果主项目有B的最新提交哈希,那么我想在B处获取子模块子模块1的最新提交哈希。
hash2 = git ls-tree B submodule1 | grep -E -o "[0-9a-f]{40}"
然后我想得到每个子模块的两个哈希的git日志..
git log -- submodule1 --oneline hash1..hash2
如何递归执行所有子模块?
答案 0 :(得分:0)
git-submodule
Here's ::-webkit-scrollbar{height: 50%; width: 50%;}
的帮助页面。
虽然我觉得这很酷但一切都很有用,但这可能有助于澄清你的意图。 :)