Come modificare una richiesta pull su GitHub per cambiare il ramo di destinazione in cui unirsi?


117

Ho una richiesta pull che richiede un'unione nel master dal mio ramo, ma il proprietario vuole che modifichi la richiesta per unire in un ramo diverso dal mio ramo.

È possibile? Quali sono le possibili soluzioni?

Risposte:


138

Aggiornamento agosto 2016: la modifica del ramo di base di una richiesta pull consente finalmente di cambiare quel ramo.
(E questo chiude il numero 18 , che aveva 3 anni e aveva oltre 1500 commenti)

Dopo aver creato una richiesta pull, è possibile modificare il ramo di base in modo che le modifiche nella richiesta pull vengano confrontate con un ramo diverso.

inserisci qui la descrizione dell'immagine


Risposta originale:

Poiché un PR non può essere modificato in termini di ramo (vedi sotto), il modo più semplice sarebbe:

  • crea un nuovo ramo locale sopra il tuo ramo attuale
  • spingere quel nuovo ramo
  • creare un nuovo PR con la giusta destinazione.
  • chiudere il PR precedente
  • fare riferimento alla "vecchia" richiesta di pull da quella nuova; per esempio. Supersedes #123(come commentato di seguito da Rivera )

(risposta originale, valida solo durante la creazione del PR )

Puoi provare a scegliere un altro ramo di base , come in " Modifica dell'intervallo di diramazioni e del repository di destinazione " (facendo clic sul Editpulsante nella parte superiore di una pagina PR)

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

Il modo più semplice per pensare alla gamma di filiali è questo:

  • il ramo di base è dove pensi che le modifiche debbano essere applicate,
  • il ramo di testa è quello che vorresti fosse applicato.

La modifica del repository di base cambia chi riceve la notifica della richiesta pull.
Tutti coloro che possono eseguire il push al repository di base riceveranno una notifica tramite posta elettronica e visualizzeranno la nuova richiesta di pull nella dashboard al successivo accesso.

Se selezioni come ramo di base quello che il manutentore originale (il proprietario) vuole, il tuo PR dovrebbe fondersi dal tuo ramo (invariato) al nuovo ramo di base.


@ Moriarty Non ho un PR in corso, ma come creatore del PR, non vedi un pulsante Modifica una volta che il tuo PR è stato inviato?
VonC

3
Sì, ma questo mi consente solo di modificare il nome del PR. Presumo che non sia possibile modificare direttamente l'unione PR in branch al momento dell'invio. Mi chiedo se esiste un'alternativa (un modo per unire un PR in un altro ramo a prescindere).
Moriarty

2
C'è una richiesta di funzionalità aperta per poter cambiare il ramo di destinazione di un PR: github.com/isaacs/github/issues/18
Jason Antman

1
È anche una buona idea fare riferimento alla "vecchia" richiesta di pull da quella nuova (es. Sostituisce # 123).
Rivera

1
@ Shimmy Non credo, non dalla GUI web.
VonC

6

Se il tuo ramo è (ancora) disponibile in remoto, non devi crearne uno nuovo in locale.

  • Seleziona il tuo ramo (che porta le modifiche che stai inviando) direttamente dal menu a tendina o sotto "# rami" ( https://github.com/account/project/branches ).

  • Fare clic su "Nuova richiesta pull". Ciò consente di scegliere un nuovo ramo di base (obiettivo).

Ecco uno screenshot della nuova interfaccia di Github: inserisci qui la descrizione dell'immagine

Posso inviare un PR di branch UXcontro qualsiasi fork / branch --- non importa se in precedenza ho inviato un PR per branch UX.


1
Il pulsante verde "Nuova richiesta pull" viene spostato nella pagina Web dell'elenco PR, nell'angolo in alto a destra.
Golden Thumb

Non sono sicuro di cosa intendi per "è stato spostato" ma, sì, puoi trovare il pulsante verde "Nuova richiesta di pull" in entrambi i posti.
mkcor

4

Ora puoi: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Ora puoi modificare il ramo di base di una richiesta pull aperta. Dopo aver creato una richiesta pull, puoi modificare il ramo di base in modo che le modifiche nella richiesta pull vengano confrontate con un ramo diverso. Cambiando il ramo di base di la tua richiesta pull originale invece di aprirne una nuova con il ramo di base corretto, sarai in grado di mantenere un lavoro e una discussione preziosi ".


2

Devi creare una nuova richiesta pull come indicato nel LINK doc di gibhub

  1. Prima seleziona New Pull request
  2. nel compare pagelato sinistro selezionare quello che target branchsi desidera spingere e sul lato destro selezionare il branch you already pushed.
  3. Aggiorna i dettagli per il tuo nuovo PR.
  4. Crea il file PR

-4

È piuttosto semplice. È sufficiente fare clic sul PR di cui si desidera modificare il ramo di base. Trova il pulsante "Chiudi richiesta pull" nella parte inferiore della pagina web. Ora puoi ricreare normalmente un nuovo PR: assicurati di selezionare il ramo di base corretto questa volta.


Non vedo perché questo sia downvoted. Questo ha funzionato perfettamente per me.
Wilt

3
Non ho votato giù. Ma vedo che questa risposta ripete semplicemente le risposte precedenti esistenti (e lo fa con meno qualità).
Lars Blumberg

@LarsBlumberg Se leggi attentamente dovresti notare che non è una ripetizione, anche se potrebbero esserci delle sovrapposizioni. Per me, se (n -1) passaggi, invece di n passaggi, possono risolvere il problema, vale la pena condividerlo :-)
Golden Thumb

2
Se (n-1) passaggi tralasciano passaggi utili come chiudere il vecchio PR e fare riferimento a quello nuovo, non vedo valore nel ripetere un sottoinsieme di passaggi da una risposta già esistente. Soprattutto quando l'elenco di meno passaggi è più difficile da leggere a causa della mancanza di una formattazione corretta.
Lars Blumberg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.