关于这个问题:
当发现git clone --recursive
时,有必要将git子模块签出到默认分支,但是如何做到这一点?
我尝试搜索并发现了另一个问题:
建议使用命令git clone --recurse-submodules
,但在克隆存储库后,其子模块仍未在默认分支上签出。
答案 0 :(得分:2)
git submodule foreach git checkout master
答案 1 :(得分:2)
您可以使用git submodule foreach
在每个子模块中运行任意命令。 --recursive
标志将通过子模块的子模块递归。 git remote show [name-of-remote]
会说明哪个分支[name-of-remote]
当前有效。将它们与其他一些工具结合起来清理git remote show
的输出会产生:
git submodule foreach --recursive "git checkout $(git remote show origin | grep 'HEAD branch' | sed 's/.*: //')"
当然,这取决于已经克隆了子模块。