在我的构建脚本中,我想检查是否所有子模块都检出了正确的版本。Git:以编程方式检查所有子模块是否指向正确的提交
git submodule status
给我“+”或“ - ”,但退出码是百达0
我使用的是DOS的批处理文件,我想有一个错误代码(%ERRORLEVEL%)0,如果如果至少一个指向不同的版本,则所有子模块指向正确提交或!= 0。的GIT中的子模块状态
实施例输出
$ git submodule status
634e661fd09059a7337c930a9fc5489564dd4ba6 sub1 (heads/master)
+dceaedd21997d39ab043b0a3a02626fd38234aae sub2 (dceaedd)
b1f1a58d912e0ab6a885e00cece601f1712d59a1 sub3 (heads/master)
SUB2已经检出由 '+'
从文档表示的不正确的版本:
每个SHA-1将被前缀 - 如果子模块未初始化 ,则+如果当前签出的子模块提交不与 匹配在包含索引中找到的SHA-1如果子模块已合并冲突,则存储库和U 。
精细。什么阻止你这样做?你介意分享你的批处理文件,并告诉我们你卡在哪里吗?顺便说一下:它不是* [DOS](https://scalibq.wordpress.com/2012/05/23/the-windows-command-prompt-is-not-a-dos-prompt/)! – aschipfl
因为我从来没有使用过git,所以我不知道'git submodule status'的输出是什么样的。但是,这个任务似乎很容易。你可以发布命令的输出示例吗? – MichaelS
@aschipfl:无论版本是否正确,错误代码始终为0 – schoetbi