2012-10-12 38 views
0

我有我在git的,因爲我就開始自己着手跟蹤的網站。現在我想用類似的代碼構建第二個網站。我的第一個想法是,「好吧,我只需克隆ClientA的存儲庫,將克隆重命名爲ClientB,然後從那裏開始。」但是,在我看來,這並不是理想的組織方式。最終,我想我想有一個叫做WebsiteBoilerplate的回購協議,爲每個客戶提供多個分支。或者我應該爲每個客戶創建單獨的回購協議嗎? 這種事情有最佳做法嗎?或者我應該這樣做,但我覺得呢?有一次,我已經決定,我需要去,我需要一些幫助,由此及彼有儘可能哪些命令我需要運行我應該如何從現有的Git倉庫中創建一個單獨的項目?

+0

HTTP: //stackoverflow.com/questions/6286571/git-fork-is-git-clone可以幫助! –

+0

一個可能的解決方案是它自己的存儲庫中的常見位以及它自己的存儲庫中的每個項目。常見的位只是項目中的子模塊。任何你可以用一個代碼庫來支持這兩個網站的方式?像多租戶,CSS文件不同等 –

+0

感謝@LukeHutton那是我有一個想法。我實際上在ClientA的回購中使用子模塊。事情是,使用幾乎完全相同的6-10子模塊重建第二個回購需要一點點工作。這就是爲什麼我有想法從現有的複製新的回購。 –

回答

1

像這取決於一切,但有一個主分支,你開發的通用代碼聽起來像一個合理的做法。然後,您可以爲每個站點分配不同的分支,並使站點特定的分支與公共主站保持同步。

創建網站特定分支很簡單:

git checkout -b siteName 

通過合併或從主墊底的變化保持同步與主

git merge master 

git rebase -i master 

如果你覺得有一段時間後有單獨的存儲庫,你也可以做到這一點。只需分叉主要的回購協議,您仍然可以通過從「上游」存儲庫中取消更改來保持同步。

要在git的餐桌(不一樣,GitHub上叉)我通常克隆,重新命名起源於上游和推到我的新原點。我也設置我的本地來追蹤新的起源。

假設你已經有一個名爲遠程起源,要重命名爲上游和設置跟蹤的新原點。

git remote rename origin upstream 
git remote add origin https://origin.git 
git branch --set-upstream master origin/master 
git push origin master 

現在你已經在起源上游和網站具體的共同的代碼,你可以跟蹤通過上游的變更:

git fetch upstream master #checks if there are changes 
git merge upstream/master #merges master with the changes in upstream 

您可以將兩個命令結合以上git pull upstream master

相關問題