验证子模块初始化[Git]

时间:2018-06-17 15:15:26

标签: git git-submodules

最近我开始在我的项目中使用git子模块。 我的一个脚本创建了一个带子模块的repo。我想创建一个函数来检查子模块是否已成功初始化。

有什么好的迹象可供核实?

我想,我们首先要检查主仓库中是否有.git目录。然后我应该检查每个子模块,但是为了什么?

希望我的问题是可以理解的,如果没有,我很乐意指出更多。

2 个答案:

答案 0 :(得分:0)

我会这样做。

git submodule foreach statusgit submodule summary

并仔细检查父存储库中的.gitmodules文件。

答案 1 :(得分:0)

要更好地解析git子模块摘要,请使用Git 2.21(2019年2月):“ git submodule summary”子命令通过以7十六进制数字的方式机械截断它们来显示缩短的提交对象名称,已对其进行了改进以使“ { {1}}“缩放长度 存储库大小的缩写。

请参见commit 0586a43Sven 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位十六进制切割方法。