回顾性地添加 – 对git回购的recursion
如果你使用--recursive
git clone
,你也可以得到所有的git子模块。
如果我忘记在克隆时添加这个神奇的旗帜,那么我该如何去获得任何子模块?
另外,如何将recursion标志设置为未来克隆的默认值?
你可以在一个简单的顶层克隆之后使用它:
git submodule update --init --recursive
我不build议做克隆默认做这个。 如果您正在积极使用子模块进行开发,而不是仅仅链接到github上的第三方OSS库(您可以在蓝色月亮中升级一次),那么正确的方法是使用git slave或subtree 。
希望这可以帮助。
-
从您的回购的根源:
$ git submodule update --init --recursive
这将更新任何和所有已注册的子模块,如果需要将其初始化为在.gitmodules文件中find的值,并且还recursion到复杂的子模块(具有自己的子模块的子模块)中,并初始化并更新它们。
-
我知道的最简单的方法来recursion克隆默认情况下将
git clone
与一个别名$ git config --global alias.clone = 'clone --recursive'
至于总是添加选项,我认为这是惯用的方法。
IIRC, git submodule init
, git submodule update
不幸的是,我没有看到默认启用recursion的选项。
看来你不能用别名“clone”覆盖“clone”,所以它是一个新的别名(Abizern的解决scheme)或“–recursive”。
是否有可能通过git别名覆盖git命令?