2015-09-01 3 views
3

Я хочу получить текущий идентификатор фиксации указанного подмодуля. Я подумал, что когда я подключился в каталог подмодулей и запустил git rev-parse HEAD, я получу это после того, как заметил, что это текущий идентификатор суперпроекта. Пробовал git submodule status | grep <submodule_name> также, но его, чтобы замедлить меня. Любая идея, как получить эту информацию немного быстрее?Получить текущий идентификатор фиксации указанного подмодуля

ответ

3

Вы можете начать с git ls-files -s (как in this answer)

cd /path/to/parent/repo 
git ls-files -s yourSubmodule 

Обратите внимание на отсутствие завершающего «/» после того, как yourSubmodule (который является корневой папкой извлечённой субмодуля)

Это даст режим и sha1, связанный с gitlink (special entry in the index of the parent repo)

160000 4d77d23305c5623356955ef9f908f4ec76780ba9 0  yourSubmodule 

(The '0' для the stage number)

Альтернативы:

cd /path/to/repo/parentFolder/of/submodule 

git ls-tree @ yourSubmodule 
git rev-parse @:./yourSubmodule 

rev-parse только возвращает подмодуль SHA1.

+0

Примечания (после downvote): Я забыл '-s' в' мерзавца ls-file -s'. Я отредактировал ответ и добавил еще две альтернативы. – VonC

+0

вы сами себя опускаете? это даже возможно? – Esperadoce

+0

@Esperadoce Это не;) Я только что увидел нисходящее (сделанное 3 часа назад), посмотрел этот ответ, чтобы увидеть, что может его оправдать, увидел ошибку и исправил ее. – VonC

1

-Open gitbash в нужной папке проекта - Проверьте ветвь (Confirm с названием филиала) - типа команда ниже

git submodule 
Смежные вопросы