Ответ 1
Используйте команду:
git rev-parse HEAD
Для короткой версии:
git rev-parse --short HEAD
Какую команду я могу использовать для печати идентификатора фиксации HEAD?
Это то, что я делаю вручную:
$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1
Но мне нужен script, который может надежно передавать вывод какой-либо команды в текстовый файл, так что текстовый файл содержит точно идентификатор фиксации HEAD (ничего более или менее, а не только ref). Может ли кто-нибудь помочь?
Используйте команду:
git rev-parse HEAD
Для короткой версии:
git rev-parse --short HEAD
git log -1
только для фиксации id
git log | head -n 1
Старый поток, еще для справки в будущем...:) даже после работ
git show-ref --head
по умолчанию HEAD отфильтровывается. Однако будьте осторожны; множественные "головы" с "s" в конце. Следующая команда показывает ветки под заголовками "refs/heads"
git show-ref --heads
Играйте с Bash:
git show HEAD | sed -n 1p | cut -d " " -f 2
Согласно https://git-scm.com/docs/git-log, для более приятного вывода в консоли вы можете использовать аргумент - decorate команды git -log:
git log --pretty=oneline --decorate
напечатает:
2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test