GIT: тег уникален для каждого коммита? - PullRequest
3 голосов
/ 25 сентября 2010

Если вы можете использовать тег только один раз (уникально по коммиту), что мне делать с 7 коммитами в теге "Version 7.3"?
Я ненавижу, что GIT не делает номера ревизий (как SVN:)).

Я думаю, подзапрос будет:
Что было бы лучше, чтобы «контролировать» номера версий (без ревизий, поэтому я хочу сохранить major.minor в каждом коммите и ОБЯЗАТЕЛЬНО в каждой ветви (я делаю> = 1 ветка на младшую)).

На первый вопрос есть фактический ответ (я думаю).
Второй - это скорее пример лучшей практики.

Очень ценится! Я многому научился в GIT из stackoverflow FTW!

Ответы [ 2 ]

10 голосов
/ 25 сентября 2010

Я не уверен, какой у вас первый вопрос, но я могу ответить на второй вопрос для вас.

Просто отметьте каждый выпуск.«v1.0», «v1.1», «v2.0».Теги полностью отделены от веток, поэтому то, как вы решите обрабатывать теги, не зависит от того, как вы решите обрабатывать ветви.

Например, если ваш репозиторий выглядит так:

A--B--C--D--E  <- master
   \
    --C'-D'-E' <- test_branch

Вы можете применить тег к ветке E' и безопасно удалить test_branch, не теряя код в E'.По этой причине люди редко используют ветки git для исторических выпусков.Пометьте выпуск номером версии и не стесняйтесь удалять любые ветки, которые вам больше не нужны.

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


Редактировать re: ваши комментарии.

Точно моя точка зрения: «один тег ссылается на один коммит«?Это вроде отстой, нет?

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

@ VonC упомянул о git-description.Это то, что я использую для ввода номеров версий во весь мой код.Все, что публикуется, будет всегда получать тег, поэтому git describe возвращает что-то вроде "v1.0".Внутренние тестовые выпуски будут помечены чем-то вроде «v1.0-10-abcd1234», что означает, что я на 10 коммитов выше тега v1.0 и дает хэш, чтобы я мог легко получить доступ к этому коммитунепосредственно.

4 голосов
/ 25 сентября 2010

Теги в основном зарезервированы для политики номеров версий приложений , а не внутреннего и технического номера (даже если kubi правильно указано в комментариях, вы может использовать их для любых целей).
Аннотированные теги в частности пригодны для публикации ("push").

Есть несколько способов имитировать номер технической ревизии в Git , но помните, что его распределенный аспект не позволит использовать простой "счетчик ревизий".

В общем, git description - это обычный способ ссылаться на коммит с некоторой значимой информацией в нем.
См. Также «Как программно определить, является ли проверка Git тегом, и если да, то каково имя тега» .

...