Git: Является ли unannotated тег хуже, чем тег с плохой аннотацией?

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

Однако я не вижу ничего плохого в использовании git describe --tags, который также принимает неаннотированные теги в качестве контрольной точки. Есть ли что-нибудь еще, что считается плохой о unannotated тегах?

Я спрашиваю, потому что Ive только что закончил преобразование проекта SVN в git. Я на самом деле думал о том, чтобы предоставить тегам аннотацию, но что должно было бы поставить Ive, если бы не тревожно избыточный "Tagging release 1.5 для нашего проектного сообщения (который в любом случае использовался как комментарий SVN)?

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

или

В каких ситуациях неаннотированные теги не нахмурились?

Изменить: я не говорю о подписанных аннотированных тегах (я понимаю преимущество наличия подписанных тегов в некоторых ситуациях); Im беспокоился только о различии между аннотированными и неподписанными аннотациями.

Изменить 2. Добавляя еще один вопрос, чтобы немного расширить область действия и, возможно, получить некоторые проницательные ответы о реальных бестселлерах

Когда вы используете unannotated теги, и вы плохо себя чувствуете, когда делаете?

Ответы

Ответ 1

Аннотированный тег фактически является объектом тега. Он имеет автора, описание, временную метку и указывает на фиксацию.

Легкий тэг указывает на фиксацию и не содержит никакой другой информации. Это стало больше общего с ветвлением, чем с тегами.

Ответ 2

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

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

Так что в основном не нажимайте легкие теги.

Когда вы это рассматриваете, все варианты дизайна поведения имеют смысл:

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

    Легкие теги не имеют этой дополнительной информации и не нуждаются в ней, поскольку вы собираетесь использовать ее самостоятельно для разработки.

  • git push -follow-tags будет только толкать аннотированные теги, чтобы не публиковать локальные теги.

  • git describe отвечает на вопрос: "Какая релиз принадлежит этой фиксации?", которая является распространенным вариантом использования.

См. также: