Удалённые репозитории
Урок 5~12 минут
Pull Request: код-ревью и совместная работа
Pull Request (PR) или Merge Request (MR) — стандартный способ командной работы с Git. Разберём весь процесс.
Что такое PR
Pull Request — это предложение влить изменения из одной ветки в другую, оформленное как обсуждение:
- Ты создаёшь ветку и делаешь коммиты
- Открываешь PR на GitHub/GitLab
- Коллеги смотрят код, оставляют комментарии
- Ты вносишь правки
- PR одобряется и мержится в main
Жизненный цикл PR
feature/auth ──────────────────────────────→ merged
│ │ │
git push open PR 更新 push
+ описание (по ревью)
Создание хорошего PR
Маленький PR лучше большого:
- До 400 строк изменений — легко ревьювить
- Один PR = одна задача
- Большой PR = долгое ревью = задержки
Хорошее описание:
markdown
## Что сделано
- Добавлена авторизация через JWT
- Middleware для проверки токена
## Зачем
Закрывает задачу AUTH-42: нужна защита API
## Как тестировать
1. POST /login с валидными данными → получить токен
2. GET /profile с токеном → профиль пользователя
3. GET /profile без токена → 401Код-ревью
Ревьювер смотрит:
- Корректность — работает ли код как задумано
- Читаемость — понятен ли код
- Тесты — покрыты ли кейсы
- Безопасность — нет ли уязвимостей
- Производительность — нет ли очевидных проблем
Как отвечать на ревью:
- Не воспринимай комментарии лично — это про код, не про тебя
- Каждый комментарий → коммит с исправлением →
git push - PR обновится автоматически
- Отметь комментарий как resolved
CI/CD в PR
Хорошая команда запускает автоматические проверки:
PR открыт → CI запускается:
✓ Тесты проходят
✓ Линтер не ругается
✓ Сборка успешна
✓ Code coverage не упал
Без зелёного CI — merge заблокирован.
Draft PR
Работа ещё не закончена, но хочешь ранний фидбэк:
[Draft] feat: авторизация
Draft PR не мержат — это сигнал что работа в процессе. Когда готово — конвертируй в обычный PR.
Процесс с fork
Для open-source проектов:
bash
# 1. Fork на GitHub (кнопкой)
# 2. Clone своего форка
git clone https://github.com/ты/repo.git
# 3. Добавить upstream
git remote add upstream https://github.com/оригинал/repo.git
# 4. Создать ветку
git switch -c fix/typo
# 5. Сделать изменения и push в свой форк
git push origin fix/typo
# 6. Открыть PR из своего форка в оригинальный репозиторийПолезные практики
- Один коммит на правку — не пуши 10 отдельных "fix"
- Squash перед merge — чистая история в main
- Закрывай issues — в описании PR напиши
Closes #42 - Проси конкретных ревьюверов — не просто @all
Pull Request — это не просто запрос на слияние. Это место для обсуждения, ревью и документирования решений. Описание PR так же важно как код.
Для непрерывной доставки и веба
main
feature/login
feature/profile
fix/crash
время →
ПЛЮСЫ
✓ Простота
✓ Быстрая доставка
✓ Хорошо для CI/CD
МИНУСЫ
✗ main всегда должна работать
✗ Нет изоляции релизов
КОГДА
Веб-сервисы, SaaS, небольшие команды