2009-09-10 20 views
5

Utworzone repozytorium git (pozwala wywołać repo # 1) i sklonowałem je.Utwórz repozytorium git zawierające inne repozytorium git.

  • W klon (repo # 2) mają utworzonego kilka folderów, z których jeden zdecydowałem się złożyć repo git repo (# 3).
  • Kiedy zobowiązuję się wykonać powtórkę nr 2, wszystko działa zgodnie z oczekiwaniami poza tym, że repoo nr 3 jest ignorowane (folder .git, zatwierdzenie plików).

Jak dodać repozytorium # 3, aby ponownie wykonać # 2, aby po naciśnięciu klawisza repo # 2, aby dokonać repozytu # 1, mogę utworzyć osobny klon z repo # 1, w którym mogę również uzyskać dostęp do historii itp. repo # 3?

Innymi słowy. Jak utworzyć repozytorium git zawierające inne repozytorium git?

Odpowiedz

3

nie należy tego robić. Metadane w pliku .git/są zmieniane podczas okresu ważności repo i zmiany te niekoniecznie oznaczają "zmiany w treści", które powinny zostać zatwierdzone: proste git repack zmieniają pliki w .git, ale zmiany nie powinny zostać zatwierdzone. Dlaczego chcesz to zrobić?

+0

Używam repo nadrzędnego (# 2), co ułatwia tworzenie kopii zapasowych folderów, że zawiera co obejmuje repo # 3. Wszystko jest przechowywane na dysku USB i w ten sposób mogę łatwo przesłać kopię zapasową wszystkiego do mojej lokalizacji kopii zapasowej (repozytorium nr 1). Wygląda na to, że będę musiał ręcznie skopiować foldery, aby utworzyć ich kopię zapasową na razie. –

+0

Jeśli wszystko, co chcesz, jest tylko kopią zapasową wszystkich repozytoriów (i kopii roboczych), możesz użyć czegoś, co nie wie nic o strukturze, na przykład mercurial lub bazar. WRAR powiedział, że doda wiele rzeczy, których nie potrzebujesz, ale jeśli chcesz tylko kopię zapasową, to może być dobrze. Ale możesz też napisać skrypt, który przechodzi przez każde repozytorium na twoim kiju i przesyła go na serwer. –

2

zobaczyć git submodule

nigdy nie używałem go, więc wszystko, co mogę zrobić, to umieścić link ...

2

Nie jestem pro przez GIT wszelkie środki, ale myślę, że odnosimy się do git submodules

git submodule --help 
0

W folderze głównym repozytorium pojemnika, po prostu zrobić:

git submodule add https://github.com/yourusername/containedrepo.git containedrepo 

To będzie sklonować containedrepo wewnątrz katalogu /containedrepo. Od tej pory nie powinieneś wprowadzać zmian w katalogu /containedrepo, lecz wprowadzać zmiany w containedrepo, a następnie je ciągnąć. Po pobraniu głównego repozytorium kontenerów pobierze ono również repozytorium wszystkich podmodulatorów, np. containedrepo.git.

Oto wielki poradnik: https://github.com/NebuPookins/git-submodule-tutorial