最近我开始在我的项目中使用git子模块。 我的一个脚本创建了一个带子模块的repo。我想创建一个函数来检查子模块是否已成功初始化。
有什么好的迹象可供核实?
我想,我们首先要检查主仓库中是否有.git
目录。然后我应该检查每个子模块,但是为了什么?
希望我的问题是可以理解的,如果没有,我很乐意指出更多。
答案 0 :(得分:0)
我会这样做。
git submodule foreach status
和git submodule summary
并仔细检查父存储库中的.gitmodules文件。
答案 1 :(得分:0)
要更好地解析git子模块摘要,请使用Git 2.21(2019年2月):“ git submodule summary
”子命令通过以7十六进制数字的方式机械截断它们来显示缩短的提交对象名称,已对其进行了改进以使“ { {1}}“缩放长度
存储库大小的缩写。
请参见commit 0586a43的Sven van Haastregt (svenvh
)(2019年2月3日)。
(由Junio C Hamano -- gitster
--在commit 257507a中合并,2019年2月7日)
rev-parse --short
:使用rev-parse缩短子模块SHA-1直到现在,
git-submodule.sh
始终会发出7个字符的SHA-1,对于较大的存储库,它们有较高的歧义机会。
改用git submodule summary
,它将确定合适的SHA-1短长度。当尚未使用“
git rev-parse --short
”初始化子模块或尚未克隆子模块时,submodule init
仍无法在其中使用;作为备用,请使用原始的7位十六进制切割方法。