Зачем нужна отдельная ветка для задачи
Принцип: Для каждой задачи создается своя ветка
Причины:
- Безопасность: Main остается стабильным, баги не попадают в production
- Код-ревью: Pull Request создается из рабочей ветки в main
- Параллельная работа: Можно начать новую задачу, пока предыдущая на ревью
- Откат изменений: Легко удалить ветку, main не пострадает
Правило: Всегда создавать ветки от main
Алгоритм:
- Убедиться, что вы в main (индикатор в правом нижнем углу)
- Создать ветку от main
- Переключиться в новую ветку (Checkout)
- Начать работу
Способы создания ветки
Способ 1: Верхнее меню
- Git → New Branch
- Создает от текущей активной ветки
Способ 2: Индикатор ветки
- Клик на main (правый нижний угол) → New Branch
Способ 3: Панель Git (рекомендуется)
- Вкладка Git → ПКМ на main → New Branch from 'main'
- Явно видно от какой ветки создаем
Правила именования веток
Структура:
PREFIX-НОМЕР_УРОКА-НОМЕР_ЗАДАЧИ-краткое-описание
Пример:
KS-1-1-sum-calculation
PROJ-5-2-add-login-button
Компоненты:
-
Префикс (PREFIX):
- Сокращение названия проекта
- KotlinSprint → KS
- В реальных проектах: код задачи из Jira (PROJ-123)
-
Номер урока и задачи:
- Урок 1, задача 1 →
1-1
- Урок 5, задача 3 →
5-3
- В реальных проектах: номер задачи
-
Краткое описание:
- 2-4 слова через дефис
- На английском языке
- Что делается в задаче
- Примеры:
sum-calculation, add-button, fix-crash
Требования:
- Все маленькими буквами (lowercase)
- Слова через дефисы
-
- БЕЗ пробелов
- БЕЗ кириллицы
- БЕЗ специальных символов (кроме дефиса)
Процесс создания ветки
- Правый клик на main в панели Git → New Branch from 'main'
- Окно Create New Branch:
- Name: вводим название (например,
KS-1-1-sum-calculation)
- Checkout branch: оставить галочку (переключиться в ветку)
- Нажать Create
Результат создания
Визуальные изменения:
-
Индикатор ветки (правый нижний угол):
- Изменился с main на KS-1-1-sum-calculation
- Показывает текущую активную ветку
-
Панель Git → Local Branches:
- Две ветки: main и KS-1-1-sum-calculation
- Значок ярлычка у активной ветки
-
График коммитов:
- Initial Commit теперь имеет 3 метки:
- [main]
- [origin/main]
- [KS-1-1-sum-calculation]
- Все ветки указывают на один коммит
Что произошло технически
- Git сделал "снимок" текущего состояния main
- Создал новую ветку с этим снимком
- Переключил в новую ветку (если галочка Checkout)
Изоляция:
- Изменения в KS-1-1 НЕ влияют на main
- Изменения в KS-1-1 НЕ влияют на другие ветки
- Безопасное пространство для разработки
Частая ошибка: Создание ветки от рабочей ветки
Неправильно:
- Вы в ветке KS-1-1
- Создаете ветку KS-1-2 прямо от KS-1-1
Проблема:
- KS-1-2 содержит всё из KS-1-1
- Если в 1-1 найдут ошибки, они будут и в 1-2
- Конфликты при слиянии
Правильно:
- Переключиться в main
- Создать KS-1-2 от main
- Начать работу
Исключение: Можно создавать от рабочей ветки, если точно понимаете зачем и умеете разрешать конфликты
Переключение между ветками
- Клик на индикатор ветки (правый нижний угол)
- Выбрать нужную ветку из списка
- Нажать Checkout (Переключиться)
Или:
- Панель Git → ПКМ на ветке → Checkout
Checkout — переключение в другую ветку
Что происходит:
- Файлы в проекте изменяются на версию из выбранной ветки
- Индикатор ветки обновляется
- Вы работаете теперь в другой ветке
Состояние проекта после создания ветки
- Структура файлов такая же, как в main
- Это нормально! Ветка — точная копия main
- Как только изменим/создадим файл — ветки начнут различаться