Чому теги вважаються незмінними?
Теги в Git вважаються незмінними, тому що вони мають завжди вказувати на той самий стан коду і слугувати надійною точкою фіксації версії або релізу.
Простіше кажучи: тег - це «зафіксована версія», а не робочий вказівник.
Що означає «незмінні» на практиці
Коли кажуть, що тег незмінний, мають на увазі:
- тег не повинен «переїжджати» на інший коміт
- значення тега не змінюється з часом
v1.2.0завжди вказує на той самий коміт
Це правило за домовленістю, а не жорстка технічна заборона.
Технічно: чи можна змінити тег?
Так, технічно можна:
- видалити тег
- створити його знову з тим самим ім'ям, але на іншому коміті
Але це: ламає історію плутає CI/CD робить релізи недовіреними
Тому це вважається поганою практикою.
Чому це важливо для версій і релізів
1. Надійність версій
Якщо тег змінюється:
- версія
v1.0.0сьогодні і завтра може означати різний код - неможливо відтворити баг чи збірку
2. Стабільність CI/CD
Дуже часто:
- деплой у прод запускається за тегом
- тег = версія
Якщо тег переїхав:
- можна задеплоїти інший код під тим самим номером версії
3. Аудит і відкати
- за тегом легко знайти, що було викладено
- можна повернутися до старої версії
- історія залишається чесною
4. Відмінність від гілок
- гілка - «живий вказівник»
- тег - історична мітка
Змінювати історичні мітки - погана ідея.
Формулювання для співбесіди
Теги вважаються незмінними, тому що вони фіксують конкретну версію або реліз і мають завжди вказувати на той самий стан коду. Зміна тега ламає відтворюваність і автоматизацію.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.