似乎git的子模块操作是手动的。作为一个熟练的git用户,我想了解这个设计决策。特别地,似乎git pull
或git checkout
要做的最令人惊讶的事情是检查pull /签出适当的分支/注释,然后更新所有子模块以匹配其相应的提交。为什么?
如果我设置
,似乎上述功能已启用[submodule]
recurse = true
在我的~/.gitconfig
中。但是即使那样,当同事添加新模块时,当我git pull master
时,即使出现在.gitmodules
中,我也没有得到新模块。如果我在.gitmodules
上检查新的,然后再做git submodule update --init MODULEPATH
,我会得到。但是,为什么这种手动交互会是理想的行为呢?当我pull
/ checkout
时,我是否(几乎要?)总是希望所有模块都更新以匹配吗?
奖金:有没有一种方法可以自动让git
提取并签出新的子模块?即,是否有子模块的Just Works模式。如果不是,那么我对使默认行为令人满意的子模块的设计又不了解什么呢?