我习惯于将git克隆到磁盘上的主位置,然后使用本地git克隆来缩短下载和复制时间。然而,如果我克隆一个有子模块的项目,git clone --recursive,它将对主存储库使用--local,但子模块初始化仍然是通过URL引用的,这意味着我还需要再次进行下载。有没有办法使git clone --recursive从子模块的本地副本中克隆,而不是典型位置?
这是我的救星:
git submodule update --init --recursive
这个命令可以初始化子模块并克隆它们,即使你的子模块中还有子模块。我在我的bash_profile中设置了一个别名,总是用它来处理空仓库和简单的更新操作。
alias gsu='git submodule update --init --recursive'
git clone
,然后编辑每个条目的url
,将其指向我的本地 repo + 来自同一条目的路径来完成此操作,它可以实现我想要的功能。但是感觉应该有更好的方法。 - Peter Martini