Где Git хранит SHA1 фиксации подмодуля?

147

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

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

.gitmodulesИ .git/configфайлы только показать пути для субмодуля, но не SHA1 фиксации.

ГИТ-подмодуль (1) справка только говорит о gitlinkзаписи и gitmodules (5) справка об этом ничего не говорят ни.

Abizern
источник

Ответы:

173

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

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

Дэн Молдинг
источник
14
Ага. Я вижу, где это сейчас. И он соответствует идентификатору из git submodule status. Спасибо.
Abizern
7
где они хранятся во время слияния, а подмодуль конфликтует?
Adam Dymitruk 08
@AdamDymitruk, ты нашел ответ?
kgadek
1
Почему бы не задать новый вопрос, ребята? :-)
Иван Вучица 02
3
Есть ли способ изменить этот идентификатор фиксации, чтобы он указывал на что-то еще, не обновляя рабочее дерево?
CMCDragonkai