我的项目结构
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的文件。
我的项目结构
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的文件。
当前回答
因为可能会发生子模块的默认分支不是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'
其他回答
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
我有一个子模块导致了问题(“fatal:…”桑安德里亚(Sanandrea)在报告中写道。导航到子模块并使用'git clean -dfx'来解析它。
如何
Git配置全局子模块。递归实现
然后忘掉它?
因为可能会发生子模块的默认分支不是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'