Ответ
Основное различие заключается в их назначении и поведении: ветки — это динамические указатели для процесса разработки, а теги — статические метки для фиксации конкретных версий.
Ветка (Branch)
Это подвижный указатель на один из коммитов. Когда вы создаете новый коммит в ветке, указатель автоматически сдвигается на него.
- Назначение: Изолированная разработка новых функций, исправление ошибок.
- Пример:
# Создать новую ветку для фичи и переключиться на нее git checkout -b feature/new-login
Тег (Tag)
Это неизменяемый указатель на конкретный коммит. Он навсегда закреплен за одной точкой в истории проекта.
- Назначение: Маркировка релизов и важных моментов (например,
v1.0,v2.1.5). - Пример:
# Создать аннотированный тег для версии 1.0 git tag -a v1.0 -m "Release version 1.0" # Отправить тег в удаленный репозиторий git push origin v1.0
Ключевые отличия
| Характеристика | Ветка (Branch) | Тег (Tag) |
|---|---|---|
| Динамика | Подвижный указатель | Статичный указатель |
| Назначение | Активная разработка | Маркировка релизов |
| Изменяемость | Постоянно обновляется коммитами | Неизменяем (после создания) |