Git更新子模块recursion
我的项目结构
ProjectA -FrameworkA (submodule) --Twig (submodule of FrameworkA)
我怎样才能更新子模块recursion? 我已经尝试了一些git命令(在ProjectA根上)
git submodule foreach git pull origin master or git submodule foreach --recursive git pull origin master
但不能拉树枝的文件
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'