Опишите ваш опыт работы с Pull/Merge Requests и процесс код-ревью.

Ответ

Да, Pull/Merge Request (PR/MR) — это основной инструмент для командной работы и код-ревью в моей практике. Я работал с обоими: Pull Requests на GitHub и Merge Requests на GitLab.

Мой стандартный рабочий процесс выглядит так:

  1. Создание ветки: Для каждой новой задачи или исправления я создаю отдельную ветку от основной (main или develop), используя семантическое именование (например, feature/add-user-auth или fix/payment-bug).
    git checkout -b feature/add-user-auth
  2. Разработка и коммиты: В процессе работы я делаю атомарные, логически завершенные коммиты с понятными сообщениями.
  3. Создание PR/MR: После завершения работы я отправляю ветку в удаленный репозиторий и создаю Pull/Merge Request. В описании я указываю, какую проблему решает мой код, и при необходимости добавляю ссылки на задачу в трекере (например, Jira).
  4. Код-ревью: Я назначаю одного или нескольких коллег в качестве ревьюеров. Мы обсуждаем предложенные изменения в комментариях к PR/MR. Я вношу правки на основе их замечаний.
  5. Мерж: После получения одобрения (approve) от ревьюеров и успешного прохождения всех CI-проверок (линтеры, тесты), я вливаю изменения в основную ветку. В зависимости от политики команды, это может быть сделано через merge, squash and merge или rebase and merge.

Цель PR/MR — не только влить код, но и получить обратную связь, поделиться знаниями и убедиться, что новые изменения соответствуют стандартам проекта.