Как открыть пулл-реквест в Github и не облажаться

Расскажу, как быстро и просто открыть пулл-реквест, на что обратить внимание, и сделать так, чтобы ваш ревьюер не расстраивался. В конце статьи есть чеклист, чтобы быстро проверять по нему.

Предполагаю, что вы уже форкнули проект, склонировали себе форк, что-то там накоммитили и готовы открыть пулл-реквест. Лучше всего читать эту статью параллельно с открыванием пулл-реквеста.

Найдите кнопку «Pull Request»

Не суетитесь и не бегайте по репозиториям, переключая ветки. Сразу, как вы запушили, на главной страничке вашего репозитория появится жёлтая плашка с названием ветки и кнопкой «Compare & pull request».

Кнопка «Compare & pull request»

Кнопка «Compare & pull request»

Эта кнопка — самый короткий путь к открытию пулл-реквеста. Жмите её.

Проверьте ветки

После нажатия кнопки у вас откроется подробная страничка о том, откуда и куда вы открываете пулл-реквест. Посмотрите, куда вольётся ваш код. Он должен попадать в главную ветку основного репозитория. Скорее всего это ветка master. И он должен быть из вашего форка и ветки, в которой вы делали работу.

Куда и откуда попадёт код

Куда и откуда попадёт код

Скорее всего так и есть, если вы правильную кнопку нажали.

Проверьте конфликты

Прямо под ветками написано, есть конфликты или нет:

Вот тут нет конфликтов

Вот тут нет конфликтов

Бывает, что конфликты есть:

А вот тут есть конфликты, влить пулл-реквест по кнопке Merge не получится

А вот тут есть конфликты, влить пулл-реквест по кнопке Merge не получится

Хорошим тоном считается открывать пулл-реквесты без конфликтов. Поэтому если у вас конфликт, решите его до того, как откроете пулл-реквест. Можно отребейзить вашу ветку от мастера главного репозитория, или можно влить мастер главного репозитория в вашу ветку.

Если вы работаете в команде и не умеете решать конфликты, попросите старшего товарища вам помочь. А если вы студент, попросите наставника :) Вы так же можете сначала открыть пулл-реквест, пусть и с конфликтами, а потом эти конфликты решить.

Напишите заголовок и описание

В форме открытия пулл-реквеста напишите заголовок: коротко что вы сделали. И описание: что конкретно и зачем, а что ещё не доделано.

Проверьте изменённые файлы

Ниже формы с описанием пулл-реквеста есть дифф — это то, что изменилось: новые файлы, удалённые файлы, изменённые строки в файлах.

Изменённые файлы (дифф)

Изменённые файлы (дифф)

Почитайте сами свой дифф и проверьте, не попалось ли там чего лишнего. Мог закрасться лишний файл, или вы закомментировали кусок кода, а потом забыли раскомментировать.

На скриншоте выше файл npm-debug.log.1955635711 очевидно лишний. Значит нужно его удалить и закоммитить это, и снова запушить в эту ветку. Если вы нашли ошибку, то просто исправьте её, закоммитьте и запушьте. Потом обновите страничку с диффом и убедитесь, что всё в порядке.

Теперь жмите «Create pull request»! Ура!


Как открыть пулл-реквест:

  1. После пуша зайдите в свой репозиторий и нажмите кнопку «Compare & pull request» на жёлтой плашке.
  2. Проверьте, что открываете пулл-реквест из своей ветки в мастер главного репозитория.
  3. Проверьте, нет ли конфликтов. Если есть, исправьте их.
  4. Напишите заголовок и описание.
  5. Проверьте, что в диффе нет ничего лишнего. Если что-то лишнее попало, уберите это.
  6. Откройте пулл-реквест :)