Вы можете получить эту информацию косвенно, выполнив что-то вроде:
git cat-file -p <revision>:<directory containing submodule>
На примере проекта micropython мы видим следующие подмодули:
$ git submodule
43a6e6bd3bbc03dc501e16b89fba0ef042ed3ea0 lib/axtls (remotes/origin/micropython-2.1.3)
35aaec4418ad78628a3b935885dd189d41ce779b lib/berkeley-db-1.xx (remotes/origin/embedded)
e9de7e35f2339598b16cbb375f9992643ed81209 lib/libffi (v3.2.1-146-ge9de7e3)
92f23d6ca0971a32f2085b9480e738d34174417b lib/lwip (STABLE-2_0_3_RELEASE)
293f553ed9551c1fdfd05eac48e75bbdeb4e7290 lib/nrfx (v1.1.0)
f690e03b53839c055ffc021ec4c9c1ac45b5b7d6 lib/stm32lib (F0-1.9.0+F4-1.16.0+F7-1.7.0+H7-1.2.0+L4-1.8.1-14-gf690e03)
Если я хочу увидеть версию lib/axtls
в теге 1.0.0
, я мог бы сделать
это:
$ git cat-file -p 1.0.0:lib
Что меня достает:
100644 blob e719821bfc7fa2e43624bce6a49494fb9c979539 README.md
160000 commit 67d27df4b5d097e146599fc4fb160a2adcbf5632 axtls
160000 commit dab957dacddcbf6cbc85d42df62e189e4877bb72 berkeley-db-1.xx
040000 tree 781cb0c2cb85996792d7fdef496771dc00318658 cmsis
040000 tree 197df18400ba59e6fc9239cb092ebe5297fc6038 embed
040000 tree 31352b2af11cebf4699621325099328fd83ceb87 fatfs
040000 tree e6c32aad43f98da3a3b87c21b5af7d0f115fe290 libc
160000 commit e9de7e35f2339598b16cbb375f9992643ed81209 libffi
040000 tree 92a3d42de877598a24f46059d0dfeed9614fe7a4 libm
160000 commit 5b8b5d459e7dd890724515bbfad86c705234f9ec lwip
040000 tree e747bbd2cea7f36bc6a77f73409bdb98062f2b06 memzip
040000 tree 33f546df4dfba0ae41a2c4c9ee9bfc261d8642e2 mp-readline
040000 tree 3089a08f2a61d61583bac5d4b60dcfdf50140d3b netutils
040000 tree 1d10d514d7e2df771409b740c4f175954f772f9b timeutils
040000 tree cfa226ef2b8f198cbcd8e4b2f42d4164bf7b7f9c utils
Вы можете видеть, что в каталоге axtls
есть объект commit
,
где хеш - это идентификатор фиксации, связанный с этим подмодулем. Так что я
может получить только коммит для субмодуля lib/axtls
в ревизии
1.0.0
вот так:
$ git cat-file -p 1.0.0:lib | awk '$4 == "axtls" {print $3}'
67d27df4b5d097e146599fc4fb160a2adcbf5632