Skip to main content

Чому теги вважаються незмінними?

Теги в Git вважаються незмінними, тому що вони мають завжди вказувати на той самий стан коду і слугувати надійною точкою фіксації версії або релізу.

Простіше кажучи: тег - це «зафіксована версія», а не робочий вказівник.


Що означає «незмінні» на практиці

Коли кажуть, що тег незмінний, мають на увазі:

  • тег не повинен «переїжджати» на інший коміт
  • значення тега не змінюється з часом
  • v1.2.0 завжди вказує на той самий коміт

Це правило за домовленістю, а не жорстка технічна заборона.


Технічно: чи можна змінити тег?

Так, технічно можна:

  • видалити тег
  • створити його знову з тим самим ім'ям, але на іншому коміті

Але це: ламає історію плутає CI/CD робить релізи недовіреними

Тому це вважається поганою практикою.


Чому це важливо для версій і релізів

1. Надійність версій

Якщо тег змінюється:

  • версія v1.0.0 сьогодні і завтра може означати різний код
  • неможливо відтворити баг чи збірку

2. Стабільність CI/CD

Дуже часто:

  • деплой у прод запускається за тегом
  • тег = версія

Якщо тег переїхав:

  • можна задеплоїти інший код під тим самим номером версії

3. Аудит і відкати

  • за тегом легко знайти, що було викладено
  • можна повернутися до старої версії
  • історія залишається чесною

4. Відмінність від гілок

  • гілка - «живий вказівник»
  • тег - історична мітка

Змінювати історичні мітки - погана ідея.


Формулювання для співбесіди

Теги вважаються незмінними, тому що вони фіксують конкретну версію або реліз і мають завжди вказувати на той самий стан коду. Зміна тега ламає відтворюваність і автоматизацію.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.