Począwszy od Git 1.7.5 powinien automatycznie aktualizować submoduły, tak jak tego chcesz.
[EDIT: za komentarze: nowy 1.7.5 zachowanie jest automatycznie sprowadzić ostatni zobowiązuje do submodules, ale nie do aktualizacja nich (w git submodule update
sensie). Tak więc informacje w tej odpowiedzi są istotne jako tło, ale nie stanowią kompletnej odpowiedzi. Nadal potrzebujesz aliasu do pobierania i aktualizowania submodułów w jednym poleceniu.]
Domyślnym zachowaniem "na żądanie" jest aktualizacja submodułów za każdym razem, gdy pobierasz zatwierdzenie, które aktualizuje commit modułu, a to zatwierdzenie nie jest już znajduje się w twoim lokalnym klonie.
Możesz także aktualizować go przy każdym pobieraniu lub nigdy (zachowanie przed 1.7.5, które zakładam).
Opcja zmiany tego zachowania to fetch.recurseSubmodules
.
Ta opcja może być ustawiona na wartość boolowską lub na on-demand
.
Ustawienie wartości logicznej zmienia zachowanie fetch
i pull
na bezwarunkową rekurencję na submoduły po ustawieniu na wartość true lub na nierekurowanie w ogóle, gdy ustawiono na wartość false.
Przy ustawieniu on-demand
(wartość domyślna), fetch
i pull
spowoduje przeszukanie tylko w zaludnionym modułem gdy jego superproject pobiera commit że aktualizuje referencyjne modułem za.
Patrz:
aby uzyskać więcej informacji.
git fetch --recurse-submodules[=yes|on-demand|no]
Powiązane: http://stackoverflow.com/questions/1899792/why-is-git-submodule-update-not-automatic – philfreo
Dlaczego alias git jest lepszy od aliasu powłoki? – wnoise
aliasy git są ładne, ponieważ hermetyzują polecenie w przestrzeni nazw "git". Możesz równie dobrze zapytać, dlaczego wszystkie polecenia git zaczynają się od "git", zamiast mieć własne imiona. –