В каких случаях я должен добавить флаг -a к команде git tag? - PullRequest
24 голосов
/ 04 ноября 2010

Мне известны технические различия между двумя типами команд (использование без -a создает легкий тег, который по сути является ветвью, которая никогда не перемещается, использование с -a создает полный объект в базе данных объектов Git, которая включает имя, адрес электронной почты и т. д.).

Вопрос в том, какой из них мне следует использовать в моих проектах (например, для обозначения версий выпуска на Github)? И если один из них чрезвычайно предпочтительнее другого, почему существует другой вариант? Каковы варианты использования для каждой версии?

Ответы [ 5 ]

10 голосов
/ 04 ноября 2010

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

Легкие метки кажутся мне больше полезными, когда вы ленивы.Может быть, временный тег (просто убедитесь, что вы случайно не нажали его; на самом деле вы могли бы просто использовать ветку), или, возможно, личный репозиторий, где дополнительная информация не используется.Я предполагаю, что многие небольшие проекты тоже делают это;они просто не очень заинтересованы в информации.Вероятно, есть только один интегратор, никто не заботится о проверке подписанных тегов, и они просто простые маркеры версий выпуска.(Я все еще думаю, что вы должны предпочесть аннотированные теги, на всякий случай!)

Другой способ думать об этом: легкие теги напоминают написание действительно плохого коммит-сообщения.Вы действительно не должны этого делать, но иногда люди делают, обычно, когда никто не смотрит.

6 голосов

Каковы варианты использования для каждой версии?

man git-tag говорит:

Аннотированные теги предназначены длявыпускать, в то время как легкие теги предназначены для частных или временных меток объектов.

И некоторые способы поведения различают их так, как эта рекомендация полезна, например:

  • аннотированные теги могутсодержать сообщение, создателя и дату, отличную от коммита, на который они указывают.Таким образом, вы можете использовать их для описания релиза, не делая релиз релиза.Облегченные теги не имеют такой дополнительной информации.
  • git push --follow-tags будет выдавать только аннотированные теги
  • git describe без параметров командной строки видит только аннотированныетеги

См. также:

3 голосов
/ 04 ноября 2010

Несколько лет назад у меня было мнение по этому поводу , которое, я думаю, все еще актуально.

3 голосов
/ 04 ноября 2010

Наиболее распространенным стилем является использование аннотированных тегов для постоянных тегов, вещей, которые вы ожидаете подтолкнуть, и вы ожидаете, что другие люди будут смотреть на них. Легкие теги затем используются для временных тегов, вещей, которые вы не будете нажимать и которые вы не хотите, чтобы другие люди видели.

3 голосов
/ 04 ноября 2010

Если вы хотите отправить / извлечь их, вам следует использовать аннотированные теги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...