2016-03-08 100 views
2

所以,我檢查了一下,看了一些關於子模塊和其他技巧來處理這個問題,但我不確定它是否真的滿足我的需要。這裏是我的內容管理系統的當前git回購:多個git倉庫在相同的路徑

/Atlas 
/Atlas/Core 
/Sites 
/Sites/site1 
/Sites/site2 

當然是簡化了。但「Core」是包含CMS所有代碼的文件夾,「/ Sites」是爲每個站點都有一個子文件夾的文件夾。我添加了/站點下的所有站點,但有些站點被排除在外.gitignore

現在,其中一些排除的是那些與客戶端無關的網站。以相同結構運行的個人網站。我現在需要的是擁有一個git倉庫,在那裏我可以簽出,編輯和推送對這些個人網站的更改,而不是所有開發人員都需要訪問。所以,有的.gitignore:

/Sites/site3 

舉例來說,但我需要籤site3,編輯它,並將它推回給服務器而不會被包含在上述回購。這是可能的子模塊?還是我需要其他方法?

+0

是的,你想使用子模塊。 https://git-scm.com/book/en/v2/Git-Tools-Submodules –

回答

0

看來你可以使用簡單的分支來解決這個問題,每個分支一個。

通常情況下,我會建議不要長時間運行的功能分支,但如果我正確理解您的問題,則永遠不打算將這些分支合併回您的主分支。在這種情況下,您唯一需要做的合併是master - > site3,並且其他開發人員無需抽取您在site3分支中所做的更改。

將此分支推送到遠程服務器時,它對開發人員可見(對於協作可能有用),但當他們只想更新其本地主副本時,不會包含在他們的git pull中。

我能看到的唯一問題是如果您的內容管理系統無法從單獨的遠程分支加載單獨的網站。

+0

感謝您的評論。由於/ Sites/site3包含在.gitignore文件中,分支似乎不直觀,對吧? – Sandman