linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Главы
  • How it works
  • Уроки
  • База знаний
  • Собеседование
home/git/kb/Совместная работа/draft-pr

kb/collab ── Совместная работа ── beginner

Draft pull request

Состояние PR, сигнализирующее «работа не закончена, не ревьювите сейчас». CI на draft PR работает, но reviewer'ы не назначаются автоматически, и merge кнопка заблокирована. Promote в обычный PR через `gh pr ready` или кнопку «Ready for review».

view as markdownaka: draft-pull-request, wip-pr

Draft PR - это обычный pull request в специальном состоянии. Он существует на сервере, его виден всем, на нём запускается CI - но GitHub знает, что автор ещё работает, и:

  • Не назначает reviewer'ов автоматически (по CODEOWNERS).
  • Не отправляет notification «requested your review».
  • Блокирует merge до перевода в ready.

Это формализация старой практики «PR с префиксом WIP в заголовке». Draft умеет то же самое, но GitHub помогает соблюдать правила.

Зачем draft

  • Получить feedback на ранний прототип. Открываешь draft, кидаешь ссылку в чат: «вот черновик, посмотрите подход, не смотрите детали». Reviewer'ы понимают, что это не final.
  • Прогнать CI до того, как считаешь PR готовым. Иногда нужно увидеть «зелёное» или «красное» от тестов, прежде чем дать на review коллегам. Draft позволяет это без шума.
  • Зафиксировать работу публично. Команда видит, что ты что-то делаешь, может зайти и обсудить, но никто не зовётся ревьюить прямо сейчас.
  • Stacked PRs. Зависимые PR'ы часто открывают как draft, и переводят в ready по очереди, когда базовый PR смержен.

Создание

bash
# через gh
gh pr create --draft
# или через UI: при создании PR нажать на dropdown рядом с
# кнопкой «Create pull request» и выбрать «Create draft pull request»

Перевод в ready

bash
gh pr ready              # текущий PR (на текущей ветке)
gh pr ready 123          # конкретный по номеру

Или в UI кнопка «Ready for review». После этого:

  • CODEOWNERS назначает reviewer'ов.
  • Reviewer'ы получают notification.
  • Merge становится возможным (при выполнении остальных условий).

Обратное преобразование тоже есть:

bash
gh pr ready --undo

Полезно, если перевёл в ready преждевременно.

Подводные камни

  • Draft не значит «приватный». PR виден всем, кто видит репо. Если хочется приватной работы - используй приватную ветку или приватный fork.
  • CI всё равно работает. Если у вас платный CI и обычная fight за раннеры, draft не экономит ресурсы. Иногда команды настраивают workflow с условием «не запускать на draft».
  • CODEOWNERS не назначается, но можно вручную. Если хочешь конкретного reviewer'а даже на draft - добавь через gh pr edit --add-reviewer @alice.
  • На некоторых тарифах GitHub draft PR недоступен (старые бесплатные private репо). На большинстве современных доступен.

Альтернатива: коммиты в feature-ветке без PR

Если работа очень ранняя, иногда проще просто коммитить в feature-ветку без открытия PR. Когда захочется feedback - тогда и откроешь draft. Open draft PR полезен, когда хочется CI и публичная видимость; до этого момента иногда удобнее не показывать недописанный код.

§ команды

bash
gh pr create --draft -t 'WIP: refactor auth'

Создать draft PR с заголовком

bash
gh pr ready

Перевести текущий PR из draft в ready for review

bash
gh pr ready --undo

Вернуть PR в draft (если рано перевёл в ready)

§ см. также

  • pull-requestPull Request (PR)Запрос на влитие ветки в основную с прохождением ревью и CI. На GitHub/GitLab/Bitbucket - стандартный механизм совместной работы. Технически это не команда Git, а функция хостинга, надстроенная над веткой и серией коммитов.
  • code-reviewCode reviewЧтение и обсуждение кода другого разработчика перед merge. Главная цель - поделиться контекстом, а не найти баги (баги - побочный результат). Хороший ревью улучшает код и распространяет знание о системе по команде.
  • pr-templatePull Request templateФайл `.github/PULL_REQUEST_TEMPLATE.md` подставляется в поле описания каждого нового PR в репо. Стандартизирует структуру «что/зачем/как тестировать/чек-лист». Экономит время ревьюверу и снижает re-review за счёт самопроверки автором.
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.