回顾性地添加 – 对git回购的recursion

如果你使用--recursive git clone ,你也可以得到所有的git子模块。

如果我忘记在克隆时添加这个神奇的旗帜,那么我该如何去获得任何子模块?

另外,如何将recursion标志设置为未来克隆的默认值?

你可以在一个简单的顶层克隆之后使用它:

 git submodule update --init --recursive 

我不build议做克隆默认做这个。 如果您正在积极使用子模块进行开发,而不是仅仅链接到github上的第三方OSS库(您可以在蓝色月亮中升级一次),那么正确的方法是使用git slave或subtree 。

希望这可以帮助。

  1. 从您的回购的根源:

     $ git submodule update --init --recursive 

    这将更新任何和所有已注册的子模块,如果需要将其初始化为在.gitmodules文件中find的值,并且还recursion到复杂的子模块(具有自己的子模块的子模块)中,并初始化并更新它们。

  2. 我知道的最简单的方法来recursion克隆默认情况下将git clone与一个别名

     $ git config --global alias.clone = 'clone --recursive' 

    至于总是添加选项,我认为这是惯用的方法。

IIRC, git submodule initgit submodule update

不幸的是,我没有看到默认启用recursion的选项。

看来你不能用别名“clone”覆盖“clone”,所以它是一个新的别名(Abizern的解决scheme)或“–recursive”。

是否有可能通过git别名覆盖git命令?