我有一個完整的項目 - 我們稱之爲Foo。它託管在我自己的Gogs服務器上。使用Git維護多個類似項目的最佳策略?
現在,我有一個請求來創建項目的衍生物,我們將其稱爲Bar。 Foo和Bar項目將共享其大部分代碼庫。
但是,Foo和Bar項目的資產必須與每個項目不同。 (像圖片,CSS文件等)
我知道我可以複製我的Foo repo並在我的Gogs服務器上創建一個Bar存儲庫,然後將Foo repo作爲第二個遠程添加到酒吧項目。但是,我不清楚的是保持某些文件分離的最佳策略,同時允許共享其他文件的更改。
示例:如果我修復了「backend.js」,我希望能夠將這一更改應用於這兩個存儲庫。但是,如果我更改「assets/logo.jpg」,我希望該更改僅適用於進行更改的回購。
因此,假設我在Bar上做了兩個提交:一個更改了徽標,另一個更改了徽標修復backend.js中的錯誤。除了櫻桃採摘文件和手動來回移動文件之外,還有更好的方法來設置它,以便將backend.js文件的更改推送到Foo原點,但徽標的更改將不會更改爲被推?
使用你的語言的包管理器,並將可重用組件分成多個包並在兩個包中使用它們? –
雖然我無法爲您的問題提供一個很好的答案,但您可能需要查看「git submodules」和「git subtree」 – lucanLepus
根據我的經驗,分支是用於特徵的。存儲庫用於項目。項目可以包括,通過包管理器(私人npm註冊表)共同的共享庫,或者如果你堅持git,使用git子模塊。 (或者甚至複製粘貼的樣板文件。)擁有白標籤項目的想法似乎很誘人,並且您「只需要幾次更改」即可啓動一個新項目。這很少,如果從來沒有的話,將解決。這裏沒有最好的策略。 – k0pernikus