git
ls-tree
сделает работу.
Но иногда вы должны вызывать его несколько раз или использовать -r
для рекурсивного отображения подстатей.
├─project
│ └─submodules
│ ├─submodule_a
│ ├─submodule_b
│ ├─...
Например, если у вас есть такой каталог проекта, и вы хотите, чтобы идентификатор фиксации составлял submodule_a
с именем тега в родительском модуле.
git ls-tree v5.4.0
даст вам идентификатор дерева каталога submodules
, а не идентификатор фиксации. Это выглядит следующим образом.
040000 tree e542bc1b084a0394ff16452c27df6572366e0009 submodules
Просто введите ls-tree
с идентификатором дерева, и вы получите фактический идентификатор фиксации для каждого подмодуля.
git ls-tree e542bc
Вы получите что-то вроде этого.
160000 commit 0f253bf94e0345600cb7a234a24eeec8ee3533bd submodule_a
160000 commit 0edcbaf94e034987cb4eeec8ee3533bd12349ade submodule_b
Или просто используйте
git ls-tree v5.4.0 -r
для проверки всех идентификаторов дерева записей или идентификатора коммита.