Ответ
Основное различие заключается в их назначении и поведении: ветки — это динамические указатели для процесса разработки, а теги — статические метки для фиксации конкретных версий.
Ветка (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) |
---|---|---|
Динамика | Подвижный указатель | Статичный указатель |
Назначение | Активная разработка | Маркировка релизов |
Изменяемость | Постоянно обновляется коммитами | Неизменяем (после создания) |