2012-04-28 13 views
40

Czy mam zamiar napotkać jakiekolwiek problemy, jeśli git klonować repo do istniejącego repozytorium git?Git Clone w Innym Istniejącym Git Repo

Dla uproszczenia opracowuję bibliotekę "lib /", która powinna być dostępna dla wszystkich moich projektów. To jest oddzielne repozytorium git. Chciałbym zaimportować tę bibliotekę/do wszystkich moich projektów i aktualizować ją tylko w jednym miejscu, nigdy nie dotykać jej z żadnego z projektów, wystarczy go użyć.

Zakładam, że wszystko jest ok, zastanawiałem się, czy jest coś, na co powinienem uważać. Dzięki!

+2

trudno mi powiedzieć, czy to jest dokładnie to, czego szukam ... wydaje się nieco skomplikowany. – botbot

+0

@masterkrang Chcesz submoduły. :) Z początku są trochę skomplikowane, podobnie jak sam Git, ale opłacalność jest warta. – Ashe

+0

haha. w porządku, wierzę w to teraz, i * do * potrzebuję submodułów. wielkie dzięki, Maxpm i @Alen Cuss. Spróbuję zmierzyć się z tą bestią jutro, kiedy jestem pełen energii. – botbot

Odpowiedz

32

Tylko dla rekordu, można sklonować repo git w innym:
wszystko pod swoim lib będą ignorowane przez otaczającą Git repo, bo powiedział lib zawiera .git.

Tak to działa, ale repo załączając nie miałby pomysł:

  • potrzebuje katalogu lib z innego repo
  • potrzebuje specyficzny rewizji tej lib zbudować prawidłowo

Są to dokładnie te dwie informacje zarejestrowane przez repozytorium rodzica (zamkniętego) w celu r eferent a submodule.
ona jest, aby dać Ci dostęp do stałej rewizji innego repo w swoim repo, ale jak wyjaśniono w „prawdziwej natury” submodules, że nie przeszkadza ci lokalnie zmodyfikować lib bezpośrednio w swoim repo macierzystej.
(Dopóki popełnić modyfikacje w lib pierwszy, a następnie przejść o jeden poziom w górę z powrotem w swoim repo dominującej, i zobowiązać się również tam)

Główną korzyścią któregokolwiek uczestnika swojego głównego projektu jest to, że kiedy sklonuje projekt, będzie wiedział, że potrzebuje również lib, jeśli jest zadeklarowany jako moduł podrzędny (jak wspomniano w "Git Submodule Workflow Advice").

+0

który ma dużo sensu @VonC. dzięki za informację. Pomyślałem, że możesz sklonować się do istniejącego repozytorium git, ale nie byłeś pewny jak to potraktować gita.ignorowanie go wydaje się eleganckie i logiczne. wykonanie testu w istniejącym repo nie wydawało się bezpieczne. przetestowanie skalowanej wersji po prostu nie wydawało się wystarczająco realistyczne, więc pomyślałem, że będę wyglądał dla społeczności. ostatnią rzeczą, której chcę, jest nieuczciwe repozytorium wewnątrz repozytorium, gdy s *** trafi w wentylator. dzięki jeszcze raz! – botbot

+1

wydaje się, że byłoby to świetne miejsce do opublikowania super prostego przykładu (lub linku do przykładu), jak zainicjować repozytorium git i jak sklonować lub dodać sumodule – botbot

+3

+1 @VonC za faktyczne udzielenie odpowiedzi na pytanie i wyjaśnienie subtelność między klonowaniem w repozytorium a użyciem submodułu, o co bym się założył to pytanie, które wielu ludzi zadaje. –