2012-06-06 12 views

Odpowiedz

88

Repozytoriów submodule pozostają w stanie odłączenia HEAD wskazując na konkretne zatwierdzenie. Zmiana tego zatwierdzenia polega po prostu na sprawdzeniu innego znacznika lub zatwierdzeniu, a następnie dodaniu zmiany do repozytorium nadrzędnego.

$ cd submodule 
$ git checkout v2.0 
Previous HEAD position was 5c1277e... bumped version to 2.0.5 
HEAD is now at f0a0036... version 2.0 

git-status na repozytorium nadrzędnej będzie teraz zgłosić brudną drzewa:

# On branch dev [...] 
# 
# modified: submodule (new commits) 

dodać katalog submodule i zobowiązać się do przechowywania nowy wskaźnik.

+4

Po przeprowadzeniu repozytorium dla rodziców z konkretną gałęzią/wersją modułu częściowego, czy inni mogą zamówić w przyszłości tę samą wersję modułu? Lub muszą one ponownie określić ręcznie? – QZHua

19

Krok 1: Dodać modułem

git submodule add git://some_repository.git some_repository 

Krok 2: Fix submodule do konkretnego popełnić

Domyślnie nowa modułem będzie śledzenie szef oddziału głównego, ale nie będą zaktualizowane podczas aktualizacji podstawowego repozytorium. Aby zmienić moduł podrzędny w celu śledzenia konkretnego zatwierdzenia lub innego katalogu zmiany gałęzi w folderze modułów podległych i przełączać gałęzie, tak jak w normalnym repozytorium.

git checkout -b some_branch origin/some_branch 

Teraz moduł submoduł jest ustawiony na gałęzi rozwoju zamiast NA HEAD of master.

Od Two Guys Arguing — Tie Git Submodules to a Particular Commit or Branch.

+10

Łatwiej jest użyć 'git submodule add -b some_branch git: //some_repository.git some_repository' – Caumons

+7

W tej chwili nie wydaje się, że' git submodule add -b' może pobrać tag lub sha1hash. Może wziąć tylko oddział. – CMCDragonkai

Powiązane problemy