2012-04-28 184 views
40

我是否會遇到任何問題,如果我git克隆到現有的git回購的回購?Git克隆到另一個現有的Git回購

爲了簡化起見,我正在開發一個庫「lib /」,它應該可用於我的所有項目。這是一個單獨的git回購。我想將這個lib /導入到我的所有項目中,並且只在一個地方更新它,不要從任何項目中觸及它,只是使用它。

我假設這是好的,只是想知道是否有什麼我應該小心。謝謝!

+2

這對我來說很難說,如果這正是我要找的......似乎有點複雜。 – botbot 2012-04-28 07:18:26

+0

@masterkrang你確實需要子模塊。 :)起初他們有點複雜,就像git本身,但複雜性是值得的。 – Ashe 2012-04-28 07:53:32

+0

哈哈。好吧,我現在相信它,我*做*需要submodules。非常感謝,Maxpm和@Arlen Cuss。當我精力充沛的時候,我會盡力解決那個野獸。 – botbot 2012-04-28 08:04:57

回答

32

只是爲了記錄在案,可以克隆中另一個的混帳回購協議:您的lib目錄下
一切都會被包圍的Git回購被忽略,因爲說lib目錄包含.git

所以它的工作,但封閉回購根本不知道:

  • 它需要從另一個回購一lib目錄
  • 它需要一個特定修訂版lib的正確建立

這些正是由回購(封閉的)記錄的兩個信息以便r參考a submodule
它使您能夠訪問固定修訂您的回購協議中的另一個回購,但正如「子模塊的真實性質」中所解釋的那樣,這並不妨礙您在您的父回購庫中直接在本地修改lib
(只要你在lib第一次提交您的修改,然後去上一級回到你父母回購,並承諾有作爲)

到您的主項目的任何貢獻的主要好處是,當他們將克隆所述項目,如果它被聲明爲子模塊(如在「Git Submodule Workflow Advice」中所述),他們將知道他們也需要lib

+0

這使@VonC很有道理。感謝您的信息。我有點想你可以克隆到現有的git repo中,但不確定git會如何處理它。忽略它似乎優雅和合乎邏輯。在現有的回購庫中運行測試似乎並不安全。測試一個縮小版本似乎不夠真實世界,所以我想我會期待社區。最後一件我想要的是當s ***擊中粉絲時,在回購裏面的一個不起眼的回購。再次感謝! – botbot 2012-04-28 21:57:18

+1

這似乎是一個很好的地方發佈一個超級簡單的例子(或鏈接到例子)如何啓動一個git回購以及如何克隆或添加sumodule – botbot 2012-04-28 22:11:46

+3

+1 @VonC實際回答問題,並解釋克隆到回購和使用子模塊之間的微妙關係,我敢打賭,這是很多人問的問題。 – 2012-09-16 21:41:47