2010-02-19 15 views
7

Pracuję nad projektem, w którym istnieje wiele submodułów. Wczoraj wszystko brzmiało brzoskwiniowo, aplikacja była uruchomiona, itp. Po tym, jak rano uruchomiłem git submodules update, otrzymałem błąd w aplikacji.Zatwierdzenie ostatniego modułu submodule commit

$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

Jak mogę sprawdzić poprzednią wersję modułu (modułów), gdy czekam na naprawienie problemu? Widziałem kilka odniesień do rozwiązań, nie widząc przykładu, który wyraźnie wspomniał o tej sprawie.

Dzięki!

Edit: bonus, jeśli można także pomóc mi zrozumieć/(znowu jak zdobyć pluginA i pluginB odwołać głowy/Master) rozwiązać ten:

$ git submodule status 
49d5cba84dcffc061db69813162d103feef31ecb vendor/plugins/pluginA (49d5cba) 
4f442f0448c1826252933d5af8fb33cd64d76f6e vendor/plugins/pluginB (4f442f0) 
558fd1a762d63562689e58cac50283192fde74d5 vendor/plugins/pluginC (heads/master) 
4feb2c51148ebc4d4f80f9a64b9eabbfde5b13a3 vendor/plugins/pluginD (heads/master) 
19dce61e256b0fc3f05342cdd3e4d21a434c0b87 vendor/plugins/pluginE (heads/master) 
+0

Rozwiązałem problem "premiowy", ręcznie sprawdzając wzorzec, kiedy znajduje się w folderze modułu. 'git checkout master' w folderze modułów, a następnie' git commit' w katalogu superproject. – Rob

+0

Zobacz także http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

Odpowiedz

2
$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

oznacza zrobiliście git pull, pobierania i łączenia plików i submodules do projektu.
SHA1 tych submodułów w projekcie wyższego szczebla (ten, który ciągnąłeś) uległy zmianie.

Można zmienić je z powrotem (git checkout aref w projectA, następnie cd .. i git add -A; git commit -m "advance submodule to aref") i naciśnij (lub nie) tych Submoduły Opłaty z powrotem do wyższego stopnia, jeśli chcesz.

Jeśli chcesz wiedzieć, co dokładny SHA1 był twój modułem co przed submodule aktualizacji, po prostu zrobić git show previousProjectSHA1 (previousProjectSHA1 będąc poprzedni SHA1 przed głównym aktualizacji projektu

Zobaczysz coś takiego:

new file mode 160000 
index 0000000..4c4c5a2 

że (4c4c5a2) jest SHA1 modułem trzeba przywrócić je do poprzedniego stanu.

Zobacz git submodule update SO pytanie, aby dowiedzieć się więcej o naturze submodułów.

0

samo jest na pierwszym przypadku, idziesz do modułem dir i kasy co kiedykolwiek wersja chcesz z git checkout <ref>