2011-02-17 9 views
68

Sé que cuando agrega un submódulo a un repositorio de git rastrea una confirmación particular de ese submódulo al que hace referencia su sha1.¿Dónde guarda Git el SHA1 de la confirmación para un submódulo?

Estoy tratando de encontrar donde se almacena este valor sha1. Los archivos y .git/config solo muestran las rutas para el submódulo, pero no el sha1 de la confirmación.

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

+2

Ver http://stackoverflow.com/questions/3983829/how-can-i-get-a-git-submodules-associated-commit-id-from-a-past-commit-in-the-pa –

Respuesta

85

Se almacena directamente en la base de datos de objetos de Git. 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").

Pruebe hacer git ls-tree master <path-to-directory-containing-submodule> (o simplemente git ls-tree master si el submódulo vive en el directorio de nivel superior).

+6

Sí. Veo dónde está ahora. Y coincide con la identificación del 'estado del submódulo git'. Gracias. – Abizern

+4

¿Dónde se almacenan durante una fusión y el submódulo está en conflicto? –

+0

@ AdamDymitruk, ¿has encontrado la respuesta? – kgadek

Cuestiones relacionadas