Чим тег відрізняється від гілки?
Тег і гілка в Git відрізняються своєю роллю і поведінкою в історії комітів.
Коротко: гілка - це «живий вказівник», а тег - «нерухома мітка».
Головна відмінність
- Гілка вказує на останній коміт і рухається вперед з кожним новим комітом
- Тег вказує на конкретний коміт і ніколи не змінюється
На простому прикладі
Історія:
A---B---C---D
- гілка
main→D - тег
v1.0.0→B
Якщо додати новий коміт:
A---B---C---D---E
main→Ev1.0.0→ все щеB
Відмінності за призначенням
Гілка
- використовується для розробки
- об'єднується через merge/rebase
- може змінюватися і переписуватися
- часто живе тимчасово
Тег
- використовується для версій і релізів
- не бере участі в merge
- не змінюється
- фіксує стан коду
Відмінності в поведінці
| Критерій | Гілка | Тег |
|---|---|---|
| Рухається при нових комітах | так | ні |
| Можна робити commit | так | ні |
| Використовується для розробки | так | ні |
| Позначає версію | ні | так |
| Може бути видалений | так | так (але рідко) |
Часто запитують на співбесіді
Чи можна закомітити в тег? Ні. Коміти робляться в гілку, тег лише вказує на коміт.
Чи можна «перемістити» тег? Технічно - так (видалити і створити заново), але це погана практика для релізів.
Короткий відповідь для співбесіди
Гілка - це рухомий вказівник на останній коміт та інструмент розробки, а тег - це незмінна мітка на конкретному коміті, яка використовується для фіксації версії чи релізу.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.