Получить короткую версию 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 версии 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) }'