我試圖設置Gitolite mirroring concept和一切工作正常,除了submodule。子模塊Gitolite鏡像
當我從從屬服務器克隆回購(具有子模塊)並更新子模塊時,子模塊將從主服務器克隆。
如何使這些子模塊克隆從服務器?
我試圖設置Gitolite mirroring concept和一切工作正常,除了submodule。子模塊Gitolite鏡像
當我從從屬服務器克隆回購(具有子模塊)並更新子模塊時,子模塊將從主服務器克隆。
如何使這些子模塊克隆從服務器?
一種方法是,例如在post-receive鉤子中,確保.gitmodules
反映出適當的子模塊地址,changing those submodules addresses,然後是git submodule sync
。
maxmelbin對象:
但改變
.gitmodules
意味着新的承諾 - 對嗎?
不一定:您可以進行修改而不是提交它,保持純粹「私有」(本地到您的從屬服務器)。
問題是,由於公司在從鏡像所有回購,是有辦法一個子模塊更新時自動選擇本地回購網址,不管是哪個網站的網址在.gitmodules配置爲提交已
我認爲git submodule update
命令的參數--reference
可以達到這個目的。
--reference <repository>
此選項僅適用於添加和更新命令。
這些命令有時需要克隆遠程存儲庫。在這種情況下,該選項將傳遞給git-clone
(1)命令。
備註:除非您仔細閱讀note forgit-clone
's--reference
and--shared
options,否則請勿使用此選項。
但改變.gitmodules意味着一個新的提交 - 對嗎?問題在於,由於所有回購站都在從站中進行了鏡像,是否有辦法在子模塊更新期間自動選擇本地回購站點,而不管在該提交哈希站的.gitmodules中配置了哪些站點URL。 – maxmelbin
@ maxmelbin否:你可以做出修改而不是提交它,以便它對你的從服務器是「私有的」。我編輯了我的答案,以解決您的全部評論。 – VonC