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
отвечает на вопрос: "Какая релиз принадлежит этой фиксации?", которая является распространенным вариантом использования.
См. также: