Відповіді:
Станом на 15.08.2016 GitHub дозволяє змінювати цільову гілку запиту на виклик через GUI. Клацніть Edit
поруч із заголовком, а потім виберіть гілку зі спадного меню.
Тепер ви можете змінити базову гілку відкритого запиту на витяг. Після того як ви створили запит на витяг, ви можете змінити базову гілку таким чином, щоб зміни в запиті на витяг порівнювались з іншою гілкою. Змінивши базову гілку вашого початкового запиту на витяг, а не відкриваючи нову з правильною базовою гілкою, ви зможете зберегти цінні роботи та обговорення.
Подаючий може змінити це, коли надсилає запит на витяг, але як тільки він видає його, ви не можете змінити його.
З іншого боку, ви можете вручну об'єднати їх гілку і натиснути, що я напіврегулярно роблю для запитів на потяг на містаргети.
Ви можете виявити, що hub
дорогоцінний камінь корисний для роботи з компонентами запиту на виклик.
Цей самоцвіт завершує ручний процес, а саме:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
git merge --no-ff ...
як у своїй відповіді згадує @GuillermoMansilla.
Альтернативою використанню дорогоцінного каменю, згаданого в інших відповідях, є використання командного рядка для об'єднання запитів на місцевому рівні , що дозволяє:
$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*
Команди, описані вище, працюють безпосередньо, якщо ви спочатку додаєте у .git/config
файл наступний рядок :
fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*
Це означає, що ви можете завантажувати ВСІ запити на тягу. Оскільки це не може бути бажаним для величезних репостів, GitHub змінив інструкції, щоб відобразити git fetch origin pull/ID/head:BRANCHNAME
синтаксис, що дозволяє уникнути зміни файлу конфігурації та завантажує лише один запит на потяг.
Хоча ви не можете змінити існуючий запит на витяг, оскільки він не ваш, ви можете легко створити новий, якщо пов'язаний сховище джерела все ще існує - так, навіть якщо це чужий.
Перейдіть до сховища представника, а потім створіть новий запит на витяг у його / її сховищі, використовуючи ті самі коміти, але переконайтеся, що ви правильно встановили потрібну цільову гілку.
Потім поверніться до власного сховища та прийміть новий запит на тягу. Вуаля!
У рішенні Деніела Пітмена немає нічого поганого, проте я би трактував ці злиття як "не швидкий вперед", тобто змінюючи крок №3 для:
git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}
Використовуючи --no-ff
історію буде легше читати. Це однозначно скаже, що $n
комісії відбулися $branch
, і це також полегшить ваше життя, якщо вам потрібно повернути щось зроблене в цій галузі.
Щоб також відповісти на запитання eoinoc і дати додаткову пораду:
Зробивши злиття, ваш git cli запропонує вам написати повідомлення, як правило, з'явиться загальне повідомлення про щось подібне
Об’єднайте відділення віддаленого відстеження "користувач / їх гілка" у вашу гілку
Обов’язково відредагуйте це повідомлення та додайте посилання на номер запиту на виклик. Тобто: (якщо припустити номер запиту на витяг 123)
Об’єднайте відділення віддаленого відстеження "користувач / їх гілка" у вашу гілку
refs # 123 вирішення будь-якого ...
Отож, наступного разу, коли ви завітаєте на сторінку про проблеми github / pull-questions та перевірте цей конкретний запит на виклик, ви побачите своє повідомлення із посиланням на те, щоб зробити місце, де ви зробили об'єднання.
Ось скріншот того, що я маю на увазі.
Для цього перейдіть на головну сторінку вашого сховища, натисніть на гілки та змініть гілку за замовчуванням з головного на щось інше, в моєму випадку "dev".
Після цього кожен раз, коли хтось створює запит на merge
витягнення, кнопка автоматично об'єднує запит у "dev", а не в master.