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