如果您使用 --recursive的 git clone,您也可以得到所有的 git 子模块。
--recursive
git clone
如果我忘记在克隆时添加这个神奇的标志,那么我现在如何去获得子模块呢?
另外,如何将递归标志设置为未来克隆的默认标志?
IIRC, git submodule init, git submodule update
git submodule init
git submodule update
不幸的是,我没有看到默认情况下启用递归的选项。
从你的回购的根源:
$ git submodule update --init --recursive
这将更新任何和所有已注册的子模块,如果需要,将它们初始化为。Gitmodule 文件,还可以递归到复杂的子模块(有自己的子模块的子模块) ,并对它们进行初始化和更新。
据我所知,使递归克隆成为默认的最简单的方法是使用别名隐藏 git clone
$ git config --global alias.clone = 'clone --recursive'
至于总是添加选项,我认为这是惯用的方法。
你可以在一个简单的顶级克隆之后使用它:
git submodule update --init --recursive
我不建议让克隆默认这样做。如果你正在积极地使用子模块进行开发,而不仅仅是链接到第三方的 OSS 库,你可能会很少升级,那么正确的方法是使用 混蛋奴隶或者 子树。
希望这个能帮上忙。
看起来你不能用别名“克隆”覆盖“克隆”,所以它是一个新的别名(Abizern 的解决方案)或者“——递归”。
可以用 git 别名覆盖 git 命令吗?