Запрос на перенос входит в мое репо, размещенное на Github. По умолчанию он объединен в master
ветку.
Могу ли я изменить ветку, в которую будут объединены изменения?
git
github
pull-request
eoinoc
источник
источник
Отправитель может изменить это при отправке запроса на перенос, но как только он его отправит, вы не сможете его изменить.
С другой стороны, вы можете вручную объединить их ветвь и push, что я полурегулярно делаю для ошибочно настроенных запросов на вытягивание.
Вы можете найти
hub
драгоценный камень полезным при работе с компонентами запроса на вытягивание.Этот драгоценный камень завершает ручной процесс, а именно:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
источник
git merge --no-ff ...
как упоминает @GuillermoMansilla в своем ответе.Альтернативой использованию драгоценного камня концентратора, упомянутого в других ответах, является использование командной строки для локального слияния запросов на вытягивание , что позволяет вам:
Приведенные выше команды работают напрямую, только если вы сначала добавляете в
.git/config
файл следующую строку :Это позволяет вам загружать ВСЕ запросы на вытягивание. Поскольку это может быть нежелательно для огромных репозиториев, GitHub изменил инструкции для включения
git fetch origin pull/ID/head:BRANCHNAME
синтаксиса, который позволяет избежать модификации файла конфигурации и загружает только этот единственный запрос на перенос.источник
Хотя вы не можете изменить существующий запрос на перенос, поскольку он не ваш, вы можете легко создать новый, если связанный исходный репозиторий все еще существует - да, даже если он принадлежит кому-то еще.
Перейдите в репозиторий отправителя, затем создайте новый запрос на перенос в его / ее репозитории, используя те же коммиты, но убедитесь, что вы правильно установили правильную целевую ветку.
Затем вернитесь в свой репозиторий и примите новый запрос на перенос. Вуаля!
источник
В решении Дэниела Питтмана нет ничего плохого, однако я бы рассматривал эти слияния как «без перемотки вперед», то есть изменение шага номер 3 для:
Благодаря использованию
--no-ff
историю будет легче читать. В нем будет четко указано, что были совершены$n
коммиты$branch
, и это также упростит вашу жизнь, если вам нужно отменить что-то, сделанное в этой ветке.Чтобы также ответить на вопрос eoinoc и дать дополнительный совет:
После выполнения слияния ваш git cli предложит вам написать сообщение, обычно появляется общее сообщение, говорящее что-то вроде
Обязательно отредактируйте это сообщение и включите ссылку на номер запроса на вытягивание. То есть: (Предполагая, что номер запроса на вытягивание равен 123)
Итак, в следующий раз, когда вы посетите страницу вопросов / запросов на github и проверите этот конкретный запрос на перенос, вы увидите свое сообщение со ссылкой для фиксации, где вы выполнили слияние.
Вот скриншот того, что я имею в виду.
источник
Для этого перейдите на домашнюю страницу вашего репозитория, щелкните ветки и измените ветку по умолчанию с master на что-то другое, в моем случае «dev».
После этого, всякий раз, когда кто-то создает запрос на
merge
перенос, кнопка автоматически объединяет запрос в «dev», а не в мастер.источник