Добавляя --count
в командную строку git rev-list
, вы указываете не отображать список ревизий, а только количество ревизий, которые он будет отображать без аргумента --count
.
В основном git rev-list HEAD --count
и git rev-list HEAD | wc -l
дают одинаковый вывод (количество строк в выводе git rev-list HEAD
).
Ответ на ваш вопрос зависит от того, что именно вы подразумеваете под "commit # 1164" .
Если вы считаете коммиты так, как они перечислены в rev-list
, то первый коммит - это текущий коммит (он же HEAD
), а коммит # 1164 - это самый старый коммит, который доступен начиная с HEAD
. Чтобы получить его хеш, не говорите git rev-list
, чтобы отобразить счетчик, но позвольте ему отображать ревизии (он отображает их хэши) и направьте свой вывод в tail -1
, чтобы получить последний хеш в списке:
git rev-list HEAD | tail -1
Но учтите, что при добавлении нового коммита в текущую ветку нумерация изменится, и commit # 1164 будет другим коммитом.
Если считать коммиты в хронологическом порядке, commit # 1 будет первым коммитом, созданным в репозитории, тогда commit # 1164 будет текущим коммитом. В этом случае вам даже не нужно использовать git rev-list
(он просматривает весь репозиторий, но вам это не нужно). Для этого достаточно использовать:
git rev-parse HEAD
, чтобы получить хэш текущего коммита (HEAD
).
В любом случае полученный вами номер ( 1164 ) не имеет никакого отношения к Git и никак не связан с какими-либо коммитами. Если вы выберете другую ветку, которая имеет по крайней мере 1164
коммитов и выполните ту же процедуру, вы получите другой коммит, как commit # 1164 .