Git更新子模块递归

我的项目结构

ProjectA
-FrameworkA (submodule)
--Twig (submodule of FrameworkA)

我如何更新子模块递归? 我已经尝试了一些git命令(在ProjectA根上)

git submodule foreach git pull origin master
or
git submodule foreach --recursive git pull origin master

但不能拉出Twig的文件


git submodule update --recursive

您也可能想要使用--init选项来使其初始化任何未初始化的子模块:

git submodule update --init --recursive

注意: 在一些旧版本的Git中 ,如果使用--init选项,则可能不会更新已经初始化的子模块。 在这种情况下,您还应该在不使用--init选项的情况下运行该命令。


我使用的方式是:

git submodule update --init --recursive
git submodule foreach --recursive git fetch
git submodule foreach git merge origin master

由于可能发生子模块的默认分支不是 master (这在我的情况中发生了很多),因此我将自动完成Git子模块的全部升级:

git submodule init
git submodule update
git submodule foreach 'git fetch origin; git checkout $(git rev-parse --abbrev-ref HEAD); git reset --hard origin/$(git rev-parse --abbrev-ref HEAD); git submodule update --recursive; git clean -dfx'
链接地址: http://www.djcxy.com/p/23603.html

上一篇: Git update submodule recursive

下一篇: Why did my Git repo enter a detached HEAD state?