2013-02-22 54 views
2

我们目前有一个相当大的子模块(大约10GB)的git仓库,从服务器克隆它需要相当长的一段时间。我想将本地副本保留在我们的项目目录中,并将其用作构建的原点。项目目录存储在NFS安装的驱动器上。是否可以硬连接本地git子模块存储库?

Git在使用--local或just/path/to/repo进行克隆时,会与原始存储库建立硬链接,但似乎并未为子模块回购制作硬链接。我会期待

git clone --local --recursive /path/to/origin mycopy 

创建所有回购的硬链接。我能告诉git也使用子模块的硬链接吗?

+0

是怎样的路径指定的子模块? – Chronial 2013-02-22 10:53:45

+0

据我所见,只是“sub1”,“sub2等。sub1/.git文件看起来像这样:gitdir:../.git/modules/sub1 – Gunnar 2013-02-22 11:38:06

+0

后'git/config'的内容,请 – Chronial 2013-02-22 11:49:18

回答

0

我不认为这是可以用的buildin命令来完成,但你可以git submodule init(或同等学历)命令之前修改.gitmodules文件并在以后恢复原:

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 
相关问题