Где Git хранит SHA1 коммита для подмодуля? - PullRequest
113 голосов
/ 17 февраля 2011

Я знаю, что когда вы добавляете подмодуль в репозиторий git, он отслеживает конкретный коммит этого подмодуля, на который ссылается его sha1.

Я пытаюсь найти, где хранится это значение sha1.

Файлы .gitmodules и .git/config показывают только пути для субмодуля, но не sha1 коммита.

Ссылка git-submodule (1) говорит толькозаписи gitlink и ссылки gitmodules (5) тоже ничего об этом не говорят.

1 Ответ

136 голосов
/ 17 февраля 2011

Он хранится в базе данных объектов Git напрямую. Объект дерева для каталога, в котором находится подмодуль, будет иметь запись для коммита подмодуля (это так называемая «gitlink»).

Попробуйте выполнить git ls-tree master <path-to-directory-containing-submodule> (или просто git ls-tree master, если подмодуль находится в каталоге верхнего уровня).

...