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


147

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

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

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

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


Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.