2013-02-13 10 views
16

Mam projekt, który korzysta z niektórych bibliotek 3rd Party. więc struktura katalogów jest coś takiego:Git subtree: używaj tylko podskładników zamiast całego repozytorium

MY_COOL_PROJECT 
    3rdParty 
     LIB_1 
     LIB_2 
    Source 
     MY_PROJECT 

Biblioteki znajdują się w oddzielnych repozytoriów. Tak więc, jeśli chcesz korzystać z repozytorium git dla bibliotek 3rd party mogę zrobić:

git subtree add --prefix 3rdParty/LIB_1 --squash http://My3rdPartyLibs.com/lib1.git master 

Jednak wewnątrz lib1.git repozytorium istnieje tylko jeden folder bin muszę. Zawiera również foldery, takie jak dokumentacja, przykłady itd. Jak mogę "połączyć" moje repozytorium z folderem lib1/bin zamiast z całym repozytorium? Czy to w ogóle jest możliwe?

+1

znaleźliście rozwiązanie dla nielicznych poddrzewie? (obecna odpowiedź nie rozwiązuje go w pełni) – inger

Odpowiedz

7

Normalnie repozytorium git jest wykonywane, aby zostać całkowicie sklonowane/załadowane.

Ty mógłby pójść na sparse checkout (Git1.7 +), ale tylko wtedy, gdy nie masz zamiaru robić żadnych modyfikacji i przesunąć te plecy. Zobacz this example:

$ git init 
Initialized empty Git repository in /tmp/si-sandbox/.git/ 
(master) $ git config core.sparsecheckout true 
(master) $ echo message-store/ >> .git/info/sparse-checkout 
(master) $ git remote add origin git://github.com/iwein/Spring-Integration-Sandbox.git 
(master) $ git pull origin master 

OP user2070238reports:

ten pracował z kilkoma zmianami.
Ponieważ używam submodule musiałem użyć

echo MY_FOLDER/* >> .git/info/modules/MY_MODULE/sparse-checkout 

iz jakiegoś powodu MY_FOLDER/ część nie pracował bez *

+1

Dzięki, działało to z kilkoma zmianami. Ponieważ używam submodule musiałem użyć 'echo MY_FOLDER/* >> .git/info/moduły/MY_MODULE/rzadki-checkout' I z jakiegoś powodu MY_FOLDER/part nie działa bez * – user2070238

+0

@ user2070238 Doskonały. Włączyłem Twój komentarz w odpowiedzi, aby uzyskać lepszą widoczność. – VonC

+1

Pierwotne pytanie dotyczyło "podtekstu git" - ta odpowiedź obejmuje zamiast tego skromne zamówienie ... co najwyżej połowę rozwiązania? (może nawet nie) – inger

Powiązane problemy