Показать, на каком git-теге вы находитесь?

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

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

git checkout tag1
git branch

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

* (no branch)
master

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

197
задан Zoe 10 November 2017 в 05:41
поделиться

2 ответа

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

git describe --tags

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

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

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

У кого-то с большим git-fu может быть более элегантное решение...

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

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

290
ответ дан 23 November 2019 в 05:15
поделиться

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

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

$ git checkout -b my_tag_branch my_tag

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

21
ответ дан 23 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: