Mam repozytorium git z wieloma submodułami. Jeden z tych submodułów ma wiele podmoduł własnych. Wszystko, co zamierzam zrobić, to sprawdzenie starego zatwierdzenia na głównym repozytorium i zlecenie mu wykonania odpowiednich zatwierdzeń ze wszystkich submodułów w celu uzyskania prawidłowego stanu kodu w tym czasie.Jak kasować stare rekordy git, w tym rekursywnie wszystkie podmoduły?
Wiem, że git zawiera informacje niezbędne, ponieważ polecenie ls-tree
może mi powiedzieć, które zatwierdzenie każdego modułu jest włączone. Muszę jednak ręcznie sprawdzić każdy z nich, co jest czasochłonne.
Szukam czegoś takiego jak git checkout --recursive
, ale takie polecenie wydaje się nie istnieć.
Czy jest to w ogóle możliwe?
Uwaga: 'git checkout --recurse-submoduły' faktycznie istnieje obecnie (2017). Ale dopiero nadchodzący Git 2.14 sprawi, że będzie działał poprawnie. Zobacz [moja odpowiedź poniżej] (https://stackoverflow.com/a/44249558/6309). – VonC