2010-02-19 14 views
7

Ich arbeite an einem Projekt, wo es eine Reihe von Submodulen gibt. Gestern war alles schön, App lief usw. Nachdem ich heute Morgen git submodules update lief, erhalte ich einen Fehler in der Anwendung.Checkout nach git Submodul commit

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

So wie ich mich über die vorherige Version des Submoduls Check-out (s), während ich für die Ausgabe warten reparieren zu lassen? Ich habe mehrere Referenzen zu Lösungen gesehen, ohne wirklich ein Beispiel zu sehen, das diesen Fall spezifisch erwähnt.

Danke!

Edit: Bonus, wenn Sie können mir auch helfen, zu verstehen/beheben diese (wie die pluginA und pluginB bekommen Köpfe/Master verweisen wieder):

$ 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

Ich habe das "Bonus" -Problem erkannt, indem ich den Master manuell im Ordner des Submoduls auscheckte. 'git checkout master' im Submodul-Ordner und dann' git commit' im superproject-Verzeichnis. – Rob

+0

Siehe auch http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

Antwort

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

bedeutet, dass Sie einen Git-Pull getan, Abrufen und Dateien und Submodule zu einem Projekt zusammenführen.
Die SHA1 dieser Submodule im Upstream-Projekt (die Sie gezogen haben) haben sich geändert.

Sie können sie (git checkout aref innerhalb projectA, dann cd .. und git add -A; git commit -m "advance submodule to aref") ändern zurück, und drücken Sie (oder nicht) diese Submodule zurück ref wollen, wenn Sie im Upstream.

Wenn Sie müssen wissen, welche genauen SHA1 Ihre Submodul an vor dem Submodul Update war, einfach tun, um eine git show previousProjectSHA1 (previousProjectSHA1 Update der vorherigen SHA1, bevor Ihr Hauptprojekt ist

Sie werden sehen, so etwas wie:

new file mode 160000 
index 0000000..4c4c5a2 

das (4c4c5a2) ist das Submodul SHA1 Sie sie in ihren vorherigen Zustand wiederherstellen müssen.

Siehe git submodule update SO Frage, um mehr über die Art der Submodule zu wissen.

0

Das Gleiche gilt für erste Fall ist, gehen Sie in dem Submodul dir und Kasse, was auch immer Version mit git checkout <ref> wie