2010-02-19 21 views
7

Estoy trabajando en un proyecto en el que hay varios submódulos. Ayer, todo era color de rosa, la aplicación se estaba ejecutando, etc. Después de ejecutar git submodules update esta mañana, recibí un error en la aplicación.Comprobación del último subprograma git commit

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

Entonces, ¿cómo hago para la salida a la versión anterior del submódulo (s) mientras espero a la cuestión de ser arreglados? He visto varias referencias a soluciones sin ver realmente un ejemplo que menciona específicamente este caso.

Gracias!

Editar: bonificación si usted también puede ayudar a entender/a solucionar este problema (cómo obtener el pluginA y pluginB hacer referencia a las cabezas/master de nuevo):

$ 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

Descubrí el problema de la "bonificación" examinando manualmente el maestro mientras estaba en la carpeta del submódulo. 'git checkout master' mientras está en la carpeta del submódulo y luego' git commit' mientras está en el directorio del superproyecto. – Rob

+0

Vea también http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

Respuesta

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

significa que usted ha hecho un git pull, ir a buscar y combinar archivos y submódulos a su proyecto.
El SHA1 de esos submódulos en el proyecto ascendente (del que ha estado extrayendo) ha cambiado.

Puede cambiar de nuevo (git checkout aref dentro projectA, a continuación, cd .. y git add -A; git commit -m "advance submodule to aref") y empuje (o no) los submódulos ref volver a aguas arriba si lo desea.

Si necesita saber qué exacta SHA1 era su submódulo a antes de la actualización submódulo, simplemente hacer una git show previousProjectSHA1 (previousProjectSHA1 ser el SHA1 previo antes de la actualización de su proyecto principal

Usted verá algo como:

new file mode 160000 
index 0000000..4c4c5a2 

Eso (4c4c5a2) es el submódulo SHA1 necesita restaurar a su estado anterior.

Ver git submodule update AS pregunta para saber más sobre la naturaleza de los submódulos.

0

Lo mismo es para el primer caso, se va submódulo a dir, y obtenga lo que cada vez que quiera con la versión git checkout <ref>