раздел 02

Совместная работа

Главная причина, по которой код держат на GitHub, - работа в команде. Несколько человек правят один проект, не наступая друг другу на ноги.

Ветки

Ветка - это отдельная линия разработки. Вместо того чтобы менять основной код напрямую, вы создаёте ветку, спокойно правите в ней, а потом вливаете изменения обратно. Основная ветка обычно называется main.

# создать ветку и переключиться на неё
git checkout -b feature/login

Pull Request

Pull Request (PR) - предложение влить изменения из вашей ветки в основную. Это не просто слияние: PR открывает обсуждение. Видны все изменения построчно, можно оставлять комментарии, запускать проверки и только потом мержить.

Ветка
Изолированная линия работы. Эксперименты и новые фичи не ломают основной код.
Pull Request
Предложение слить ветку в main с обсуждением и проверками перед мержем.
Code review
Коллеги читают изменения, оставляют комментарии к конкретным строкам, просят правки.

Code review

Когда открыт PR, другие участники делают code review - читают код и комментируют. Можно оставить замечание к конкретной строке, предложить готовую правку, одобрить (approve) или запросить изменения. Это ловит ошибки до того, как они попадут в основную ветку.

Issues

Issues - задачи и баги проекта. Каждая issue это отдельная карточка: заголовок, описание, обсуждение, метки и ответственный. Сюда пишут о найденных багах, предлагают фичи, планируют работу. Issue можно связать с Pull Request, и при мерже она закроется автоматически.

Fork

Fork - ваша личная копия чужого репозитория на вашем аккаунте. Нужен, когда у вас нет прав на запись в оригинал, но вы хотите предложить правки. Вы форкаете проект, меняете в своей копии и отправляете изменения обратно через Pull Request.

Типовой флоу контрибьюции

Так выглядит участие в чужом опенсорс-проекте:

1
Fork
Сделать форк репозитория - появится копия на вашем аккаунте.
2
Клонировать и создать ветку
Скачать форк к себе, создать ветку под конкретную правку.
3
Внести изменения
Поправить код, закоммитить и запушить ветку в свой форк.
4
Открыть Pull Request
Из своей ветки в оригинальный репозиторий. Описать, что и зачем меняете.
5
Пройти review
Ответить на комментарии мейнтейнеров, внести правки. После одобрения PR мержат.