it-roy-ru.com

Команда Git для отображения идентификатора коммита HEAD?

Какую команду можно использовать для распечатки идентификатора коммита HEAD?

Это то, что я делаю вручную:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

Но мне нужен сценарий, который может надежно передать вывод какой-либо команды в текстовый файл, так что текстовый файл содержит в точности идентификатор фиксации HEAD (ничего более или менее, а не просто ссылку). Кто-нибудь может помочь?

184
Andrew Arnott

Используйте команду:

git rev-parse HEAD

Для короткой версии:

git rev-parse --short HEAD
325
Randal Schwartz
git log -1

только для фиксации id

git log | head -n 1 
21
cyb0k

Старая тема, еще для дальнейшего использования ... :) даже следующие работы

git show-ref --head

по умолчанию HEAD отфильтровывается . Будьте осторожны, хотя; множественные "головы" с 's' в конце. Следующая команда показывает ветки под "refs /глав"

 git show-ref --heads
12
Abhijit Mazumder

Играть с Bash:

git show HEAD | sed -n 1p | cut -d " " -f 2
4
Ali Moreno

Можно указать параметры git log, чтобы отображать только последний коммит, -1, и формат, который включает только идентификатор фиксации, например:

git log -1 --format=%H

Если вы предпочитаете сокращенный идентификатор фиксации:

git log -1 --format=%h

3
JotaBe

Согласно 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
2
Ilya Slyisarenko

git rev-parse --abbrev-ref HEAD

0
Avdhut Mankavale