Onde o Git armazena o SHA1 da confirmação para um submódulo?

141

Eu sei que quando você adiciona um submódulo a um repositório git, ele rastreia um commit específico desse submódulo referenciado por seu sha1.

Estou tentando encontrar onde esse valor sha1 está armazenado.

Os arquivos .gitmodulese .git/configmostram apenas os caminhos para o submódulo, mas não o sha1 da confirmação.

A referência git-submodule (1) fala apenas de uma gitlinkentrada e a referência gitmodules (5) também não diz nada sobre isso.

Abizern
fonte

Respostas:

167

Ele é armazenado diretamente no banco de dados de objetos do Git. O objeto em árvore do diretório em que o submódulo reside terá uma entrada para o commit do submódulo (este é o chamado "gitlink").

Tente fazer git ls-tree master <path-to-directory-containing-submodule>(ou apenas git ls-tree masterse o submódulo estiver no diretório de nível superior).

Dan Moulding
fonte
14
Sim. Eu vejo onde está agora. E corresponde ao id de git submodule status. Obrigado.
Abizern
7
onde eles são armazenados durante uma mesclagem e o submódulo está em conflito?
Adam Dymitruk
@AdamDymitruk, você encontrou a resposta?
kgadek
1
Por que não postar uma nova pergunta, pessoal? :-)
Ivan Vučica
3
Existe uma maneira de alterar esse ID de confirmação para apontar para outra coisa sem atualizar a árvore de trabalho?
precisa saber é o seguinte