Gdzie Git przechowuje SHA1 zatwierdzenia dla podmodułu?

141

Wiem, że kiedy dodajesz moduł podrzędny do repozytorium git, śledzi on konkretne zatwierdzenie tego modułu podrzędnego, do którego odwołuje się jego sha1.

Próbuję znaleźć miejsce przechowywania tej wartości sha1.

.gitmodulesI .git/configpliki pokazać tylko ścieżki dla modułem, ale nie SHA1 z popełnić.

Git-modułem (1) odniesienie mówi tylko o gitlinkwejściu i gitmodules (5) odniesienia nie mówi nic o tym albo.

Abizern
źródło

Odpowiedzi:

167

Jest przechowywany bezpośrednio w obiektowej bazie danych Gita. Obiekt drzewa dla katalogu, w którym znajduje się podmoduł, będzie zawierał wpis dotyczący zatwierdzenia podmodułu (jest to tak zwany „gitlink”).

Spróbuj zrobić git ls-tree master <path-to-directory-containing-submodule>(lub po prostu git ls-tree masterjeśli moduł podrzędny znajduje się w katalogu najwyższego poziomu).

Dan Moulding
źródło
14
Tak. Widzę, gdzie to jest teraz. I pasuje do identyfikatora z git submodule status. Dzięki.
Abizern
7
gdzie są przechowywane podczas scalania, a moduł podrzędny jest w konflikcie?
Adam Dymitruk
@AdamDymitruk, czy znalazłeś odpowiedź?
kgadek
1
Dlaczego nie opublikować nowego pytania, ludzie? :-)
Ivan Vučica
3
Czy istnieje sposób na zmianę tego identyfikatora zatwierdzenia, aby wskazywał na coś innego bez aktualizowania drzewa roboczego?
CMCDragonkai