Pull requests — это предложения по объединению изменений кода в проект. Запрос на вытягивание — это GitHubключевая функция совместной работы, которая позволяет обсуждать и просматривать изменения перед слиянием. Это помогает командам работать вместе, своевременно выявлять проблемы и поддерживать качество кода.
Просматривайте ваши pull requestsРабота с запросами на вытягивание
Запрос на вытягивание объединяет рецензентов контекста, необходимых для понимания изменения. Этот контекст упорядочен на вкладки:
- На вкладке "Беседа " отображаются описание, временная шкала, комментарии и отзывы.
- На вкладке "Фиксации" показано, как с течением времени изменяется ветвь запроса на вытягивание.
- На вкладке "Проверки " показаны автоматические тесты, сборки и другие проверки.
- На вкладке "Измененные файлы" показан дифф, используемый рецензентами для понимания предлагаемых изменений.
- На вкладке "Результаты" отображаются результаты автоматического проверки кода, например оповещений сканирования кода для предлагаемых изменений.
Отдельно от вкладок состояние слияния выделяет блокировщики, отсутствующие утверждения и другие требования перед слиянием. Он отображается в заголовке запроса на вытягивание и в поле слияния.
Вместе эти представления помогают авторам и рецензентам обсуждать изменения, отслеживать отзывы и решать, когда запрос на вытягивание готов к слиянию.
Черновые пулл-реквесты
Когда вы создаёте pull request, вы можете выбрать вариант draft-pull request. Черновые pull requests нельзя объединять, и владельцы кода не получают автоматического запроса на их проверку. Черновики полезны, если вы хотите предоставить общий доступ к работе без официального запроса отзывов.
Когда вы будете готовы получить отзыв о запросе на вытягивание, вы можете пометить черновик запроса на вытягивание как «Готовый к проверке». При пометке запроса на вытягивание как «Готового к проверке» будет запрашиваться проверка всеми владельцами кода. Вы можете в любой момент преобразовать pull request в черновик. См . раздел AUTOTITLE.
Ссылки на pull request и ветки слияния
При открытии запроса на вытягивание создает временные ссылки Git, GitHub указывающие на головную ветвь запроса на вытягивание и, когда это возможно, на имитированный результат слияния. Эти ссылки помогают GitHub и интеграции оценивают запрос на вытягивание, не изменяя базовую ветвь.
Для большинства участников эти ссылки остаются в фоновом режиме. Они наиболее важны при создании автоматизации, отладке поведения CI или локальном получении состояния запроса на вытягивание. Для информации о том, как GitHub Actions используется ветка слияния, см. События, инициирующие рабочие процессы.
Различия между фиксациями на страницах сравнения и на страницах запроса на вытягивание
Сравнение страниц и страниц запросов на вытягивание может вычислять измененные файлы из разных баз слиянием. В результате одни и те же ветви иногда могут отображать разные диффы в каждом месте.
Обычно это имеет значение, когда базовая ветвь изменилась после создания запроса на вытягивание. Страницы запросов на вытягивание сосредоточены на том, что появилось запрос на вытягивание, в то время как страницы сравнения отражают текущее сравнение двух ссылок.
Модели совместной разработки
Способ применения запросов на вытягивание зависит от типа модели разработки, используемой в проекте. Можно использовать модель создания вилок и вытягивания или модель общего репозитория.
Модель создания вилок и вытягивания
В модели вилки и извлечения любой пользователь может закрепить существующий репозиторий (upstream), если у них есть доступ на чтение, а владелец вышестоящего репозитория разрешает его. Имейте в виду, что вилка и его вышестоящий ресурс используют одни и те же данные Git. Это означает, что все содержимое, отправленное в вилку, доступно из вышестоящего и всех остальных вилок вышестоящего.
Вам не требуется разрешение из вышестоящего репозитория для отправки в вилку, созданную вами. При необходимости вы можете разрешить любому пользователю, доступ на отправку в вышестоящий репозиторий, чтобы внести изменения в ветвь запроса на вытягивание. Эта модель популярна в проектах с открытым кодом, так как она снижает трение для новых участников и позволяет людям работать независимо без предварительной координации.
Совет
Дополнительные сведения о продуктах с открытым кодом, в частности о создании и развитии проекта с открытым кодом см. в Руководствах по проектам с открытым кодом, которые помогут вам содействовать работе сообщества разработчиков продуктов с открытым кодом.Вы также можете пройти бесплатный курс GitHub Skills по поддержанию сообществ разработчиков продуктов с открытым кодом.
Модель общего репозитория
В модели общего репозитория участники совместной работы получают доступ к одному общему репозиторию и создают ветви разделов, когда им нужно внести изменения. Запросы на вытягивание полезны в этой модели, так как они запускают проверку кода и общие обсуждения набора изменений до объединения изменений в основную ветвь разработки. Эта модель чаще всего используется для небольших команд и организаций, сотрудничающих с частными проектами.