我们目前有一个相当大的git存储库和子模块(大约10GB),从服务器克隆它需要相当长的时间。我想在我们的项目目录中保留一个本地副本,并将其用作构建的原点。项目目录存储在NFS挂载的驱动器上。
当使用--local或just / path / to / repo克隆时,Git会创建到原始存储库的硬链接,但它似乎没有为子模块存储库创建硬链接。我原以为
git clone --local --recursive /path/to/origin mycopy
为所有回购创建硬链接。我可以告诉git也为子模块使用硬链接吗?
答案 0 :(得分:0)
我不认为这可以使用buildin命令完成,但您可以在.gitmodules
(或等效的)命令之前修改git submodule init
文件并稍后恢复原始文件:
git clone --local /path/to/origin mycopy
sed -i '/path = /{h;s,.* = ,,;x};/url = /{s, = .*, = /path/to/origin,;G;s,\n,,}' mycopy/.gitmodules
git -C mycopy submodule update --init
git -C mycopy checkout -- .gitmodules