kb/collab
Pull request как процесс, code review без боли, branch protection rules, CODEOWNERS. Резолв merge-конфликтов в IDE и через `git mergetool`. Стратегии слияния PR: merge commit, squash, rebase.
Режим, в котором PR сольётся автоматически как только пройдут все required reviews и checks. Включается через `gh pr merge --auto` или кнопку «Enable auto-merge» в UI. Освобождает от ручного клика по «merge» после получения approve и зелёного CI.
Набор правил, которые GitHub/GitLab/Bitbucket применяет к попыткам изменить защищённую ветку. Запрещает прямой push, требует PR с approve, требует зелёный CI, блокирует force-push. Без них любой с write-доступом может затереть main одним коммитом.
Чтение и обсуждение кода другого разработчика перед merge. Главная цель - поделиться контекстом, а не найти баги (баги - побочный результат). Хороший ревью улучшает код и распространяет знание о системе по команде.
Файл `.github/CODEOWNERS` привязывает пути в репо к командам или людям. При открытии PR, который трогает эти пути, владельцы автоматически назначаются ревьюверами. В связке с branch protection блокирует merge без их approve.
Состояние PR, сигнализирующее «работа не закончена, не ревьювите сейчас». CI на draft PR работает, но reviewer'ы не назначаются автоматически, и merge кнопка заблокирована. Promote в обычный PR через `gh pr ready` или кнопку «Ready for review».
Веб-инбокс на `github.com/notifications` плюс email-уведомления о событиях в репо. Watch повышает уровень подписки. Фильтры `is:unread reason:mention` спасают от шума. Главная гигиена - периодически чистить watch-список через `/notifications/subscriptions`.
Organization - контейнер для нескольких пользователей и репозиториев с общим биллингом, настройками безопасности и teams. Team - именованная группа пользователей внутри организации для batch-выдачи доступов. Пользователь может быть членом многих org одновременно.
Запрос на влитие ветки в основную с прохождением ревью и CI. На GitHub/GitLab/Bitbucket - стандартный механизм совместной работы. Технически это не команда Git, а функция хостинга, надстроенная над веткой и серией коммитов.
Файл `.github/PULL_REQUEST_TEMPLATE.md` подставляется в поле описания каждого нового PR в репо. Стандартизирует структуру «что/зачем/как тестировать/чек-лист». Экономит время ревьюверу и снижает re-review за счёт самопроверки автором.
Внешние проверки (CI, security scan, code coverage), которые привязаны к коммиту и сообщают GitHub зелёное/красное состояние. В [[branch-protection]] можно сделать конкретные checks «required» -без них merge заблокирован.
В GitHub три кнопки для merge PR: Create a merge commit (--no-ff, с merge-коммитом), Squash and merge (один сжатый коммит без родителя из ветки), Rebase and merge (rebase + fast-forward без merge-коммита). Команды выбирают одну для всего проекта.