LINUX.ORG.RU

Git. Создание тэгов и работа с ними.

 


2

2

привет.

Изучаю Git по этой статье: http://blog.nsws.ru/rabota-s-git-dlya-nachinayushhix.html

Тэгам посвящено очень мало. В общем, непонятно как задать имя создаваемому тегу? Как коммитить в конкретный тэг?

спасибо.

★★★

Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от panter_dsd

хм.. ну я в общем-то полагал что и с git, тэги остаются тэгами.

хорошо, перефразирую вопрос: есть master. я хочу на его основе создать ветку под именем 'release-0.1.0', с которой будут работать. т.е. на основе 0.1.0 потом создам в 0.1.1, 0.1.2, итд..

подскажите, как такое проделывается?

niXman ★★★
() автор топика
Ответ на: комментарий от panter_dsd

спасибо огромное!

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

niXman ★★★
() автор топика
Ответ на: комментарий от panter_dsd

позвольте последний вопрос, чтоб не создавать еще одну тему..

из того что я прочел, я понял следующее: для того чтоб создать branch 'release-0.1.0', я должен создать его на основе 'master'. далее, специфичные для 'release-0.1.0' изменение я провожу именно в этом branch`е. далее, когда я захочу создать 'release-0.1.1', я должен его именно на основе 'release-0.1.0' ? так?

но я что-то запутался между branch`ами и tag`ами %)

или для релизов, мне достаточно создавать tag`и на основе branch`а в текущий момент?

спасибо.

niXman ★★★
() автор топика

как задать имя создаваемому тегу?

git tag NAME

Как коммитить в конкретный тэг?

никак. метка присваивается коммиту, а не наоборот.

waker ★★★★★
()
Ответ на: комментарий от niXman

все добровольно. для релизов не обязательно создавать бренчи, достаточно тегов. бренчи нужны если ты хочешь развивать две ветки релизов параллельно например, в одной ветке ты делаешь релизы 0.1.1, 0.1.2, 0.1.3, а в другой уже работаешь над 0.2.x

waker ★★★★★
()
Ответ на: комментарий от waker

p.s. внутри бренчей можно сколько угодно тегов создавать. например, в ветке 0.1 можно наделать теги 0.1.1, 0.1.2, 0.1.3 потом в ветке 0.2 можно наделать тегов 0.2.1, 0.2.2, ...

waker ★★★★★
()
Ответ на: комментарий от niXman

далее, когда я захочу создать 'release-0.1.1', я должен его именно на основе 'release-0.1.0' ? так?

да

но я что-то запутался между branch`ами и tag`ами %)

branch — это ветвь дерева коммитов. tag — это некоторая метка, которой можно обозначить отдельный коммит, к примеру, для удобства его поиска

theNamelessOne ★★★★★
()
Ответ на: комментарий от niXman

а как же тогда мне одновременно работать над 0.1.1 и 0.2.1 ? ведь это разные ветки.

Одновременно никак. Надо переключаться между ветками с «git checkout ветка». Переключаться можно только если в текущей ветке нет изменений. Поэтому перед переключением изменения придётся или комитить или прятать (git stash)

velikS
()

git help tag

//KO

anonymous
()

У меня другой вопрос, если я сделал комит и у меня мастер этот коммит, могу ли я подвинуть мастер назад не удалив коммит?

Trieforce
()
Ответ на: комментарий от niXman

Всё упирается в то, что ты подразумеваешь под словом «работать». Если тебе их компилировать надо, тогда смотришь хеш коммита и его чекаутишь, дальше у тебя в дереве твой коммит, который соответствует тегу. Если ты будешь что-то менять и коммитить, тогда, вроде как ветки нужны, но мне не понятно нафига такое нужно. Зачем менять 0.1.1 если уже есть 0.2.1? 0.1.1 старая версия тогда, нафига фиксить в ней, если можно зафиксить в 0.2.1 и выпустить 0.2.2?

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Есть такая вещь как профессиональное программирование. Иногда так случается, что старыми версиями софта еще кто-то пользуется и не горит желанием переходить на новые версии:

  • Например, старая версия может быть сертифицирована, а новая - еще нет.
  • Более того, новая версия может вообще не запуститься на старом наборе библиотек. Никто не станет обновлять весь тулчейн ради какого-то фикса.

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

anonymous
()
Ответ на: комментарий от anonymous

то в интересах программиста фиксить не только в мастере, но и в ветках старых релизов.

ЧТД. Бранчи создаются по факту поддержки, а не изначально. То есть, ТС'у нужны просто теги.

baverman ★★★
()
Ответ на: комментарий от niXman

В гите не принято думать о релизах. Вместо этого думайте о фичах и багах.

Под каждый баг/каждую фичу - своя ветка. Как работа над ними заканчивается - ветки вливаются в основную.

В тот момент, как в основной ветке появилась нужная функциональность и нет критических багов - создаете тэг.

Вот на мой взгляд маст-рид статья - http://habrahabr.ru/post/106912/

Belkrr
()
Ответ на: комментарий от anonymous

Есть такая вещь как профессиональное программирование.

дальше не читал.

nanoolinux ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.