从设计上看,git的子模块操作似乎是手动的。作为一个相当熟练的git用户,我想了解这个设计决策。尤其是,对于
git pull
或
git checkout
要做的是检查拉取/签出适当的分支/注释,然后更新所有子模块以匹配其相应的提交。为什么?
如果我设置了
[submodule]
recurse = true
在我的
~/.gitconfig
. 但即便如此,当一个同事添加一个新模块时
git pull master
,即使新模块出现在
.gitmodules
. 如果我查一下
.gitmodules模块
换个新的然后做
git submodule update --init MODULEPATH
,我明白了。但同样,为什么这种手动交互会是理想的行为呢?当我
pull
/
checkout
,不是吗(几乎?)总是希望所有模块更新匹配吗?
奖励:有没有办法自动拥有
git
获取并签出新的子模块?一、 e.子模块是否有Just-Works模式。如果不是,那么对于使默认行为成为可取的子模块的设计,我有什么不理解的呢?