Показать какой тэг git вы используете? - PullRequest
178 голосов
/ 04 августа 2010

У меня возникают проблемы с поиском того, какой тег в настоящее время извлечен.

Когда я делаю:

git checkout tag1
git branch

Я не могу определить, на каком теге я нахожусь,Это только журналы:

* (no branch)
master

Можно ли узнать, какие теги проверены?В приведенном выше примере это будет tag1.

Ответы [ 6 ]

265 голосов
/ 04 августа 2010

Редактировать : у Якуба Наребски больше гит-фу.Следующая намного более простая команда отлично работает:

git describe --tags

(или без --tags, если вы извлекли аннотированный тег. Мой тег легкий, поэтому мне нужны --tags.)

оригинальный ответ следует:

git describe --exact-match --tags $(git log -n1 --pretty='%h')

Кто-то с большим количеством гит-фу может иметь более элегантное решение ...

Это использует тот факт, что git-log сообщает журнал, начиная с того, что вы извлекли.%h печатает сокращенный хеш.Затем git describe --exact-match --tags находит тег (облегченный или аннотированный), который точно соответствует этому коммиту.

Синтаксис $(), приведенный выше, предполагает, что вы используете bash или аналогичный.

51 голосов
/ 11 ноября 2015

Это сработало для меня git describe --tags --abbrev=0

32 голосов
/ 28 мая 2016

Показать все теги на текущем HEAD (или коммите)

git tag --points-at HEAD
22 голосов
/ 30 апреля 2014

git describe - это команда фарфор , которую следует избегать:

http://git -blame.blogspot.com / 2013/06 / проверка тока Гиса-programatically.html

Вместо этого я использовал:

git name-rev --tags --name-only $(git rev-parse HEAD)
21 голосов
/ 04 августа 2010

Когда вы извлекаете тег, у вас есть то, что называется «отделяемая голова» .Обычно коммит Git HEAD - это указатель на ветку, которую вы в данный момент извлекли.Однако, если вы извлекаете что-то, кроме локальной ветки (например, тег или удаленную ветку), у вас есть «оторванная голова» - на самом деле вы не находитесь ни в одной ветке.Вы не должны делать никаких коммитов, когда находитесь на оторванной голове.

Можно проверить тег, если вы не хотите вносить какие-либо изменения.Если вы просто просматриваете содержимое файлов или хотите построить свой проект из тега, все в порядке с git checkout my_tag и работой с файлами , если вы не делаете никаких коммитов ,Если вы хотите начать изменение файлов, вы должны создать ветку на основе тега:

$ git checkout -b my_tag_branch my_tag

создаст новую ветку с именем my_tag_branch, начиная с my_tag.В этой ветке безопасно вносить изменения.

7 голосов
/ 26 ноября 2014

git log --decorate

Это скажет вам, какие ссылки указывают на текущий извлеченный коммит.

...