Как изменить запрос на перенос на GitHub, чтобы изменить целевую ветку для слияния?

117

У меня есть запрос на перенос, который запрашивает слияние с мастером из моей ветки, но владелец хочет, чтобы я изменил запрос для слияния в другую ветку из моей ветки.

Это возможно? Какие есть возможные решения?

Moriarty
источник

Ответы:

138

Обновление от августа 2016 года: изменение базовой ветки запроса на извлечение, наконец, позволяет изменить эту ветку.
(И это закрывает выпуск 18 , которому было 3 года и было более 1500 комментариев)

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

введите описание изображения здесь


Оригинальный ответ:

Поскольку PR не может быть отредактирован с точки зрения ветки (см. Ниже), самым простым способом было бы:

  • создайте новую локальную ветку поверх текущей ветки
  • толкни эту новую ветку
  • сделайте новый PR с правильным предназначением.
  • закрыть предыдущий PR
  • сослаться на «старый» запрос на вытягивание из нового; например. Supersedes #123(как прокомментировал Ривера ниже )

(оригинальный ответ, действителен только при создании PR )

Вы можете попробовать выбрать другую базовую ветвь , как в « Изменение диапазона ветвей и целевого репозитория » ( Editнажав кнопку вверху страницы PR)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

Самый простой способ представить себе диапазон веток:

  • базовая отрасль , где вы думаете , изменения должны быть применены,
  • руководитель филиала является то , что вы хотели бы применить.

При изменении базового репозитория меняется, кто уведомлен о запросе на перенос.
Каждый, кто может отправить запрос в базовый репозиторий, получит уведомление по электронной почте и увидит новый запрос на вытягивание на своей панели управления при следующем входе в систему.

Если вы выберете в качестве базовой ветки ту, которую хочет исходный сопровождающий (владелец), ваш PR должен слиться из вашей ветки (без изменений) в новую базовую ветку.

VonC
источник
@Moriarty У меня нет PR, но как создатель PR, вы не видите кнопку «Изменить» после того, как ваш PR отправлен?
VonC
3
Да, но это позволяет мне изменить только имя PR. Я предполагаю, что вы не можете напрямую изменить слияние PR с веткой при отправке. Мне интересно, есть ли альтернатива (независимо от того, как объединить PR в другую ветку).
Мориарти
2
Открыт запрос функции, чтобы иметь возможность изменить целевую ветку PR: github.com/isaacs/github/issues/18
Джейсон Антман,
1
Также рекомендуется ссылаться на «старый» запрос на вытягивание из нового (например, Заменяет # 123).
Ривера
1
@Shimmy Я так не думаю, не из веб-интерфейса.
VonC
6

Если ваша ветка (все еще) доступна удаленно, вам не нужно создавать новую ветку локально.

  • Выберите свою ветку (которая содержит отправляемые вами изменения) либо непосредственно из раскрывающегося меню, либо в разделе «# ветвей» ( https://github.com/account/project/branches ).

  • Нажмите «Новый запрос на перенос». Это позволяет вам выбрать новую базовую (целевую) ветку.

Вот скриншот нового интерфейса Github: введите описание изображения здесь

Я могу отправить PR ветки UXпротив любой ветки / ветки - неважно, подавал ли я ранее PR для ветки UX.

mkcor
источник
1
Зеленая кнопка «Новый запрос на вытягивание» перемещена на веб-страницу со списком PR в верхнем правом углу.
Golden Thumb
Я не уверен, что вы имеете в виду под словом «перемещено», но да, вы можете найти зеленую кнопку «Новый запрос на перенос» в обоих местах.
mkcor
4

Теперь вы можете: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Теперь вы можете изменить базовую ветвь открытого запроса на вытягивание. После создания запроса на вытягивание вы можете изменить базовую ветвь, чтобы изменения в запросе на вытягивание сравнивались с другой ветвью. Изменив базовую ветвь ваш исходный запрос на вытягивание вместо того, чтобы открывать новый с правильной базовой веткой, вы сможете сохранить ценную работу и обсуждение ".

МК.
источник
2

Вы должны создать новый запрос на перенос, как указано в документе gibhub LINK

  1. Первый выбор New Pull request
  2. в compare pageлевой части выберите, что target branchвы хотите нажать, а в правой части выберите branch you already pushed.
  3. Обновите детали для вашего нового PR.
  4. Создать PR
Ани Теттайил
источник
-4

Все очень просто. Просто щелкните PR, для которого вы хотите изменить его базовую ветвь. Найдите кнопку «Закрыть запрос на перенос» в нижней части веб-страницы. Теперь вы можете воссоздать новый PR в обычном режиме - на этот раз убедитесь, что вы выбрали правильную базовую ветвь.

Золотой палец
источник
Я не понимаю, почему это отвергается. Это отлично сработало для меня.
Уилт
3
Я не голосовал против. Но я вижу, что этот ответ просто повторяет существующие старые ответы (и делает это с меньшим качеством).
Ларс Блумберг,
@LarsBlumberg Если вы внимательно прочитаете, то заметите, что это не повторение, хотя могут быть некоторые совпадения. На мой взгляд, если (n -1) шагов вместо n могут решить проблему, им стоит поделиться :-)
Golden Thumb
2
Если (n-1) шагов не учитывают полезные шаги, такие как закрытие старого PR и ссылка на новый, я не вижу смысла в повторении подмножества шагов из уже существующего ответа. Особенно, когда список с меньшим количеством шагов труднее читать из-за отсутствия правильного форматирования.
Lars Blumberg