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.


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).


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.