2017-03-06 15 views
0

我們已經構建了一個小型cms,我們希望將其用作我們所有項目的基礎。此cms位於bitbucket上的回購站中。我們開始一個新項目時,本過程涉及克隆「CMS」,那麼我們刪除git的文件夾,然後運行:Git複製代碼庫並保持更新

git init 
git remote add origin https://[email protected]/myuser/newproject.git 
git add . 
git commit -m "First commit" 
git push -u origin master 

它工作至今罰款,這個問題開始時,我們對「CMS」的更新,我們想複製他們對孩子們的項目。我們有一個「核心」文件夾,所以它不會中斷應用程序。

我已閱讀有關鏡像here

git clone --mirror https://github.com/exampleuser/repository-to-mirror.git 
Set the push location to your mirror. 

cd repository-to-mirror.git 
git remote set-url --push origin https://github.com/exampleuser/mirrored 

但似乎鏡像複製所有分支在這種情況下是不是我們要找的,任何想法?

+0

順便說一下,你提到cms更改與應用程序更改是分開的,所以它聽起來像你*真正擁有的是一個核心模塊,它是多個應用程序的共享依賴。將源代碼嵌入到這些應用程序中是否有優勢?如果是這樣,請參閱下面的答案,但將cms項目構建爲庫並將其包含爲構建時依賴關係可能更自然。 (取決於語言和工具;但是,例如,如果這是Java的core.jar等......) –

回答

0

我想你明確不想在newporject回購中看到cms系統的所有歷史記錄?不過,你可以保持與cms repo的關係,以使其更容易。

git clone --depth=1 cms 
git remote rename origin cms 
git remote add origin https://[email protected]/myuser/newproject.git 
git push -u origin master 

這是假設你要複製的承諾是對CMS的默認分支(但你上面闡明的過程表明,它是,所以這個應該沒問題)。

通過這樣做,你開始新項目與相同提交作爲您的cms回購,而不是一個新的提交只有相同的樹。而且你將cms作爲第二個遠程控制器,這樣你就可以輕鬆地獲取/拉取/合併cms更改。

git pull cms master 
+0

請注意,您可能需要更改跟蹤設置,以便從cms中提取時,它將轉到除master之外的其他分支在新項目中,取決於您的分支策略;但這也不是什麼大不了的事情。 –