在項目中使用依賴關係作爲子模塊,這樣你就不會在乎它們在磁盤上的位置。
Submodules
允許外國庫被嵌入專用的子目錄中的源代碼樹的內,總是指着一個特定的提交。
git submodule
打破你的大項目,子項目爲你做了這麼遠。
現在,使用各子項目添加到您的主要項目:
git submodule add <url>
一旦項目被添加到您的回購,你必須初始化和更新。
git submodule init
git submodule update
作爲GIT中1.8.2新選項--remote
的溶液中加入:
git submodule update --remote --merge
這將fetch
從上游每個子模塊中的最新變化,merge them in
,和check out
子模塊的最新版本。
由於the docs形容它:
--remote
此選項僅適用於update命令。使用子模塊的遠程跟蹤分支的狀態,而不是使用超級項目的已記錄的SHA-1來更新子模塊。
這相當於在每個子模塊中運行git pull
。
然而,我將如何推提交在錯誤修正的用C影響與父層共享的代碼的情形?
還是那句話:使用子模塊將會把你的主要項目中的代碼作爲其內容的一部分。將它置於文件夾內部或將其作爲子模塊的一部分之間的區別在於,在子模塊中,內容被管理(提交)到不同的獨立存儲庫。
這是子模塊的示意圖 - 項目另一個項目,其中,每個項目是一個獨立的項目內:
git subtree
它允許你插入任何存儲庫作爲另一個的子目錄。
與submodule
非常相似,但主要區別在於代碼的管理位置。在子模塊中,內容放置在一個單獨的回購站中,並在那裏進行管理,從而允許您將其克隆到其他許多回購站。
subtree
被管理內容作爲根項目的一部分,而不是在一個單獨的項目。
而不是寫下如何設置和了解如何使用它,你可以簡單閱讀this excellent post這將解釋這一切。