我想宣傳我公司內部monorepo的想法。
我打算使用他們這樣說:Git的子模塊軌道分支用途不同
我有一個「父」回購拿着我們的堆棧的每個部件一個子模塊,從而維護全球版本爲整個堆棧(我們可以簡單簽上給出的分支的每個組件)
這聽起來很完美的,因爲我們仍然可以任意CI服務開箱(益處,我們仍然推自主混帳回購協議,該子模塊)。
唯一的(可怕的)弱點這種做法,也就是如果做一個
git submodule update --remote
採用以下配置:
[submodule "commonLib"]
path = commonLib
url = [email protected]:org/commonLib.git
branch = MY_BRANCH
每個子模塊有效地在正確檢查,驅趕出局提交。
但是:他們都在分離的頭
爲什麼有沒有辦法有效地使用gitsumodule設有分公司。 即:更新時,有效檢出分支而不是此分支指向的提交? 是出於技術原因還是根本沒有在git中實現?
感謝答案
我們遇到了同樣的問題。問題是,每次更新子模塊時,主存儲庫都需要更新子模塊,這將使主站更新主站分支。最後,我們將核心項目組合成單個回購,解決了問題。子模塊最適合第三方依賴項以及其他不經常更改的私有項目。理想情況下,每個子模塊應該獨立構建,因此它可以獨立運行在CI上。 你可能會看看谷歌git回購,部分解決這個問題。 https://gerrit.googlesource.com/git-repo/ –
你能否詳細說明你正在談論的問題,我不確定以正確的方式理解它。 – Clement
據我所知,如果你使用分支追蹤,checkouted子模塊將直接指向正確的提交,但不指向指向該提交的分支。這意味着每個人在工作之前都必須注意檢查正確的分支......而這又讓我感到困擾。 – Clement