2012-01-11 17 views
6

Estoy haciendo referencia a un submódulo de git en mi proyecto, y ahora necesito hacer referencia a un SHA específico en el repositorio de git de destino.Submódulos de Git: especifique un SHA específico?

# .gitmodules 
[submodule "vendor/plugins/ssl_requirement"] 
    path = vendor/plugins/ssl_requirement 
    url = git://github.com/retr0h/ssl_requirement.git 

El SHA que quiero es bc96ad96407a72a60e0542cf3b0cecc6ff9e278e.

Respuesta

20

Los submódulos, por definición, siempre hacen referencia a SHA1 particular en el subproyecto. Que SHA1 no se expresa en el archivo .gitmodules, sino que se expresa como la entrada en el objeto de árbol que contiene el submódulo. La forma en que configura esto en git es por cd ingresando al submódulo, revisando el SHA1 que desea, luego cd regresando al repositorio padre y confirmando su cambio, que se mostrará como un archivo cambiado.

Así que en su caso lo que se puede hacer es

cd vendor/plugins/ssl_requirement 
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e 
cd .. 
git add ssl_requirement 
# commit whenever you're ready 
+1

+1; eso es casi exactamente lo que estaba escribiendo. Tenga en cuenta que si el submódulo fue recuperado por última vez del origen antes de esa confirmación, es posible que tenga que ejecutar 'git fetch' en el submódulo para recuperarlo. – Cascabel

+0

¡Gracias, tiene perfecto sentido! – Zubin

Cuestiones relacionadas