Получить короткую версию Git

Есть ли более чистый способ получить короткую версию хэша HEAD из Git?

Я хочу видеть тот же вывод, что и из:

 git log -n 1 | head -n 1 | sed -e 's/^commit //' | head -c 8

Первоначально я использовал это для генерации строки версии, но это еще лучше:

git describe --tags

Это выведет строки как 0.1.12 (помеченный коммит) или 0.1.11-5-g0c85fbc (пять коммитов после тега).

9 ответов

Решение

Попробуй это:

git rev-parse --short HEAD

Команда git rev-parse может делать множество разных вещей, поэтому вам нужно очень внимательно изучить документацию, чтобы определить это.

Вы можете сделать практически любой формат, который вы хотите с --pretty=format:

git log -1 --pretty=format:%h 
git log -1 --abbrev-commit

также сделаю это.

git log --abbrev-commit

перечислит записи журнала с сокращенной контрольной суммой SHA-1.

Простой способ увидеть короткую версию Git commit и сообщение Git commit:

git log --oneline

Обратите внимание, что это сокращение для

git log --pretty=oneline --abbrev-commit

Действительно простой способ:

git describe --always

У меня Git версии 2.7.4 со следующими настройками:

git config --global log.abbrevcommit yes
git config --global core.abbrev 8

Теперь, когда я делаю:

git log --pretty=oneline

Я получаю сокращенный идентификатор фиксации из восьми цифр:

ed054a38 add project based .gitignore
30a3fa4c add ez version
0a6e9015 add logic for shifting days
af4ab954 add n days ago
...

Ветка с коротким хешем и последним комментарием:

git branch -v

  develop      717c2f9 [ahead 42] blabla
* master       2722bbe [ahead 1] bla

Как насчет этого:

git log --pretty="%h %cD %cn %s"  

это показывает что-то вроде:

674cd0d Ср, 20 ноя 2019 12:15:38 +0000 Сообщение о фиксации Боба

см. документацию по красивому формату, введите здесь описание ссылки

Кроме того, если вам нужно получить SHA короткой фиксации из удаленного репозитория, вы можете использовать следующую команду:

      git ls-remote https://some.domain/some-remote-repo.git HEAD | awk '{ print substr($1,1,8) }'
Другие вопросы по тегам