Git: работа с ветками, конфликтами и Pull Request
Введение
Git позволяет работать с ветками, безопасно вносить изменения и объединять их через Pull Request.
В этой инструкции — базовые сценарии для повседневной работы.
Работа с ветками
Создание ветки
git checkout -b feature/task-name
Создаёт новую ветку и сразу переключает на неё.
Переключение между ветками
git checkout main
git checkout feature/task-name
Отправка ветки на сервер
git push origin feature/task-name
Обновление ветки
Перед слиянием стоит подтянуть изменения из основной ветки:
git pull --rebase origin main
Слияние изменений
Через merge
git checkout main
git pull
git merge feature/task-name
Через rebase
git checkout feature/task-name
git pull --rebase origin main
git checkout main
git merge feature/task-name
Используется для более чистой истории.
Конфликты
Как выглядят
<<<<<<< HEAD
ваш код
=======
код из другой ветки
>>>>>>> branch-name
Как решить
- Открыть файл
- Оставить нужный код
- Удалить служебные строки
- Сохранить
Завершение
Если используется rebase:
git add .
git rebase --continue
Если merge:
git add .
git commit
Pull Request
Pull Request — способ предложить изменения для основной ветки.
Используется в GitLab, GitHub и аналогичных системах.
Процесс
git checkout -b feature/task-name
git add .
git commit -m "описание изменений"
git push origin feature/task-name
Далее:
- создаётся Pull Request
- проходит проверка
- выполняется слияние
Типичные ошибки
Ветка не обновлена
git pull --rebase origin main
Конфликты при слиянии
Решаются вручную, затем завершается merge или rebase.
Работа напрямую в main
Не рекомендуется. Лучше использовать отдельные ветки.
Рекомендации
- работать через feature-ветки
- регулярно обновлять ветку
- использовать rebase при необходимости
- делать небольшие коммиты
Итог
Базовый цикл работы:
- создать ветку
- внести изменения
- отправить на сервер
- создать Pull Request
- выполнить слияние
Этого достаточно для нормальной командной работы с Git.