¿Dónde almacena Git el SHA1 del commit para un submódulo?

141

Sé que cuando agrega un submódulo a un repositorio git, rastrea una confirmación particular de ese submódulo al que hace referencia su sha1.

Estoy tratando de encontrar dónde se almacena este valor sha1.

Los archivos .gitmodulesy .git/configsolo muestran las rutas para el submódulo, pero no el sha1 de la confirmación.

La referencia git-submodule (1) solo habla de una gitlinkentrada y la referencia gitmodules (5) tampoco dice nada al respecto.

Abizern
fuente

Respuestas:

167

Se almacena en la base de datos de objetos de Git directamente. El objeto de árbol para el directorio donde vive el submódulo tendrá una entrada para la confirmación del submódulo (este es el llamado "gitlink").

Intente hacerlo git ls-tree master <path-to-directory-containing-submodule>(o solo git ls-tree mastersi el submódulo vive en el directorio de nivel superior).

Dan Molding
fuente
14
Sí. Ya veo dónde está ahora. Y coincide con la identificación de git submodule status. Gracias.
Abizern
77
¿Dónde se almacenan durante una fusión y el submódulo está en conflicto?
Adam Dymitruk
@AdamDymitruk, ¿has encontrado la respuesta?
kgadek
1
¿Por qué no publicar una nueva pregunta, amigos? :-)
Ivan Vučica
3
¿Hay alguna manera de cambiar esta identificación de confirmación para que apunte a otra cosa sin actualizar el árbol de trabajo?
CMCDragonkai