是否有任何编程方式可以找出非删除提交中的子模块?基本上,我希望能够做git submodule status <commit>
(遗憾的是,该选项不存在,至少在1.9.7.5中)
我可以想到两种选择;没有一个看起来很优雅:
git submodule summary -n 1 commit
;然后使用git submodule status
获取文件的内容&#34; .gitmodules&#34;在该特定提交,然后解析它
任何更简单的解决方案?
答案 0 :(得分:1)
这样的事情应该有效:
git ls-tree -r <commit> | awk '$2 == "commit"'
虽然它只告诉你子模块附加的路径以及应该检查的相应提交。如果您想获取URL或其他信息,您可能必须解析该提交中的.gitmodules
文件,如您所述。
答案 1 :(得分:0)
你可以使用GIT_INDEX_FILE的第二个索引,然后运行git submodule status --cached
吗?
我不使用子模块,因此不能100%确定语法是否可行
git read-tree --index-output=$tmp_index $branch
GIT_INDEX_FILE=$tmp_index git submodule status --cached