"git describe" игнорирует тег
в следующих строках:
$ git tag -n1
v1.8 Tagged the day before yesterday
v1.9 Tagged yesterday
v2.0 Tagged today
$ git describe
v1.9-500-ga6a8c67
$
может ли кто-нибудь объяснить, почему v2.Тег 0 не используется "git describe", и как это исправить? V2.Тег 0 уже нажат, поэтому я предполагаю, что я не могу просто удалить и повторно добавить его.
3 ответов
git describe
по умолчанию использует только аннотированные теги. укажите --tags
возможность сделать его использовать легкие теги, а также
убедитесь, что вы проверили правильно совершить (git rev-parse HEAD
). аннотированные теги создаются с помощью git tag -a
. если вы это сделаете git show <tagname>
и вы видите только фиксацию, это легкий тег, если вы видите сообщение дополнительного тега, это аннотированный тег.
когда это произошло с нами, это был случай двух тегов, применяемых для одного и того же коммита. Вы можете найти, если это так, запустив
# git log --oneline --decorate=short
deba4b4 (tag: v1.1.0.20.0, tag: v1.1.0.19.0) 001 New buildnumber
здесь есть два тега, один для версии 19 и другой для 20. 20 был помечен после 19, но для той же фиксации. В этом случае опишите returned
# git describe --tags
v1.1.0.19.0
Я не знаю, почему он это сделал, но вот как он работает с повторяющимися тегами.
еще один случай, когда это может произойти, если у вас есть тег, который больше "рядом" с вами в ветке. Этот случай был объяснен в этот блог.
вопрос git tag
показывает все теги во всех ветвях в то время как git describe
использует теги только для коммитов, доступных в текущем филиала.
вот пример (причина, по которой я пришел сюда на самом деле):
$ git tag | tail -n3
v0.4.0
v0.4.1
v0.4.2
он показывает последний доступный тег v0.4.2
, но это мой вывод git describe
:
$ git describe --tags
v0.4.0-2-acd334c
Я нахожусь на разработке филиала. Когда я копаюсь в журнале, я вижу, что самые последние теги недоступны на текущая ветка:
$ git log --oneline --decorate=short | grep '\(tag\:' | head -n3
acd334c (tag: v0.4.0) Merge pull request #1061
988fe5e (tag: v0.3.6) Merge pull request #859
5f97274 (tag: v0.3.5) Merge pull request #646
Итак, в моем случае разработчики решили создать новый релиз ветвь исключительно для тегов выпусков, в результате чего ветвь разработки больше не актуальна с тегами.
надеюсь, что это поможет и спасибо @eis за идею с проверкой журналов.