我有一个Git存储库,其中有几个子模块。如何在git子模块init运行后列出所有子模块的名称?

git子模块foreach命令可以回显子模块的名称,但这只有在它们被签出后才有效,而在init步骤之后没有发生。在签出之前,链中还有更多的步骤需要执行,我不希望将子模块的名称硬连接到脚本中。

那么是否存在一个Git命令来获取所有当前已注册但尚未签出的子模块的名称?


当前回答

你可以使用:

git submodule | awk '{ print $2 }'

其他回答

你可以使用:

git submodule | awk '{ print $2 }'

我用的是这个:

git submodule status | cut -d' ' -f3-4 

输出(路径+版本):

tools/deploy_utils (0.2.4)

只是一个简单的子模块列表:

git submodule--helper list | cut -d$'\t' -f 2

Use:

$ git submodule

它将列出指定Git存储库中的所有子模块。

这招对我很管用:

git ls-files --stage | grep ^160000

它基于这篇伟大的文章:理解Git子模块

它必须读取grep ^160000。