В Git, как мне узнать, какая у меня текущая ревизия?

167

Я просто хочу знать, какой у меня номер текущей версии.

TIMEX
источник
Я нашел этот вопрос, когда искал способ получить текущую ревизию, чтобы использовать ее в дальнейших командах git. Но когда я прочитал ответы, я понял: «Ой, подождите, мне это не нужно, я могу просто использовать на HEADсамом деле».
Антуан Пинсард

Ответы:

228

Что вы подразумеваете под "номером версии"? Довольно часто помечать коммит номером версии, а затем использовать

$ git describe --tags

идентифицировать текущую ГОЛОВКУ по любым тегам. Если вы имеете в виду, что хотите знать хеш текущего HEAD, вы, вероятно, хотите:

$ git rev-parse HEAD

или для короткого ревизионного хэша:

$ git rev-parse --short HEAD

Часто достаточно сделать:

$ cat .git/refs/heads/${branch-master}

но это не надежно, так как ссылка может быть упакована.

Уильям Перселл
источник
8
Ссылки могут быть упакованы .git/packed-refs, поэтому вам следует избегать прямого доступа .git/refs/. Просто используйте git rev-parse master(или git rev-parse refs/heads/masterесли вам нужно быть полностью однозначным).
Крис Джонсен
108

Есть много способов, git log -1это самый простой и самый распространенный, я думаю,

manojlds
источник
1
Как сделать так, чтобы файл стал предыдущей версией?
TIMEX
1
может быть, вы хотите git checkout HEAD ^ - имя файла
manojlds
2
Кстати, это дает НАМНОГО БОЛЬШЕ, чем просто текущая ревизия, и вам придется последовательно ее анализировать (а значит, не самое лучшее / самое простое / распространенное решение, imho)
RAM237
36

Это дает вам только ревизию.

git rev-parse HEAD
htanata
источник
Я думаю, что это лучший ответ, поскольку он не зависит от реализации. Ответ Уильяма "cat .git / refs /head / master" даст то же значение, но нет гарантии, что он будет работать в будущем, если реализация изменится.
Thagomizer
Согласен, это лучший ответ. Краткое упоминание об этом --shortварианте сделало бы его идеальным.
Бобби Джек
15

Это дает вам первые несколько цифр хэша, и они достаточно уникальны, чтобы использовать, например, номер версии.

git rev-parse - короткая ГОЛОВА

Кен Макконнелл
источник
0

ниже будет работать с любой ранее выдвинутой ревизией, а не только с HEAD

для сокращенного ревизионного хэша:

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

для длительного пересмотра хэша:

git log -1 --pretty=format:%H
Алексей Бычко
источник