我尝试设置Gitolite mirroring concept,除了子模块外,一切正常。
当我从奴隶服务器克隆repo(有子模块)并更新子模块时,子模块将从主服务器克隆。
如何使这些子模块也从从服务器克隆?
答案 0 :(得分:2)
一种方法是,例如在收件后挂钩中,确保.gitmodules
反映出适当的子模块地址changing those submodules addresses,然后是git submodule sync
。
maxmelbin个对象:
但更改
.gitmodules
意味着新提交 - 对吧?
不一定:您可以进行修改而不提交,将其保持为“私有”(从属服务器本地)。
问题是,由于所有repo都在镜像中镜像,有没有办法在子模块更新期间自动选择本地repo url,无论在哪个站点中配置url .gitmodules用于该提交
我认为--reference
命令的git submodule update
参数可以实现这一点。
--reference <repository>
此选项仅对添加和更新命令有效 这些命令有时需要克隆远程存储库。在这种情况下,此选项将传递给
git-clone
(1)命令 注意:除非您仔细阅读note forgit-clone
's--reference
and--shared
options,否则请勿使用此选项。