Git fetch 同时更新子模块
1. 问题描述
默认情况,git checkout; git fetch 如果子模块 submodule 的版本不一致, git 是不会自动更新子模块;
2. 传统解决方法:
cd submodules 文件夹;
git checkout / fetch;
3. 高级解决方法:
在全局进行 Git 设置:
1 | git config –global submodule.recurse true |
---|
设置 submodule.recurse true 后,不仅仅 git checkout 会自动切换子模块,git fetch / pull 也会自动拉取子模块的更新
注意:这个设置对用户机器上安装的 git 版本有要求,详见下面说明
在发行说明中提到了这一点:https://github.com/git/git/commit/e1104a5ee539408b81566066aaa6963cb87d5cd6#diff-c24776ff22455a30fbb78e378b7df0b0R139
submodule.recurse 选项已添加到 git 2.14