Przenosimy nasz (ogromny) projekt do gita i myślimy o zastosowaniu modułów podrzędnych. Nasz plan to mieć trzy różne głowy w superprojekcie: wydanie, stabilne, najnowsze. Liderzy projektu zajmą się wydaniem i stabilnymi gałęziami. W razie potrzeby przeniosą podmoduły.
Problemem jest „najnowsza” głowa. Chcielibyśmy, aby głowa superprojektu „najnowsza” śledziła główne gałęzie wszystkich podmodułów (automatycznie). Byłoby również wspaniale, gdyby pokazywał historię wszystkich zatwierdzeń do podmodułu.
Patrzyłem na gitslave, ale nie do końca tego chcemy. Jakieś sugestie?
git
git-submodules
git-track
l.thee.a
źródło
źródło
Odpowiedzi:
Aktualizacja marzec 2013
Git 1.8.2 dodał możliwość śledzenia gałęzi.
Jeśli masz już obecny moduł podrzędny , a teraz chciałbyś śledzić gałąź, zobacz „ jak sprawić, by istniejący moduł podrzędny śledził gałąź ”.
Zobacz także samouczek Vogelli dotyczący modułów podrzędnych, aby uzyskać ogólne informacje o modułach podrzędnych .
Uwaga:
Zobacz
git submodule
stronę podręcznika :Zobacz commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Jeśli--branch
podano, zapisz to.gitmodules
Oryginalna odpowiedź (luty 2012):
Podmoduł to pojedyncze zatwierdzenie, do którego odwołuje się repozytorium nadrzędne.
Ponieważ samo w sobie jest repozytorium Git, „historia wszystkich zatwierdzeń” jest dostępna za pośrednictwem modułu
git log
podrzędnego.Aby rodzic mógł automatycznie śledzić najnowsze zatwierdzenie danej gałęzi podmodułu, musiałby:
gitslave (na który już spojrzałeś) wydaje się być najlepszym rozwiązaniem, w tym dla operacji commit .
Inne alternatywy są szczegółowo opisane tutaj .
źródło
git config -f .gitmodules submodule.<path>.branch <branch>
. Dodaj wszystko, zatwierdzaj i pchaj.--remote
tagu, jeśli nie chcesz mieć odłączonych głów podczas aktualizacji, zastanawiając się, dlaczego wydaje się, że twój świeżo pobrany kod jest za masterem!git submodule update
polecenia, informując go, do którego zatwierdzenia (tj. Ostatniego zatwierdzenia na urządzeniu głównym) ma zaktualizować moduł podrzędny, a nie automagicznie powoduje, że repozytorium nadrzędne aktualizuje, do którego na zatwierdzenie wskazuje podmoduł w czasie klonowania?