2011-12-09 13 views
99

Quando apro una richiesta pull su GitHub, tutti i commit dalla mia ultima richiesta e tutti quelli nuovi vengono automaticamente aggiunti a questa richiesta. Non riesco a controllare quali sono i commit aggiunti e quali no. Quando provo ad aprire un'altra richiesta di pull, ottengo un errore "Oops! C'è già una richiesta di pull". C'è un modo semplice per aprire più richieste di pull senza dover scherzare con la riga di comando?Come aprire più richieste pull su GitHub

risposta

88

Le richieste di pull sono basate su un ramo. L'unico modo per aprire una richiesta pull per più commit è isolarli nel proprio ramo e aprire le richieste pull da lì.

+2

questo è Ok cool, pensavo fosse solo con il maestro. Quindi, quello che intendi è che posso creare molti rami (es: caratteristiche di git flow) e fare richieste di pull per ognuno di essi ... provando! –

+6

Ho appena scoperto che il ramo ha conservato la cronologia dei commit precedenti, quindi una richiesta pull contro l'upstream include ancora tutti i commit. –

+2

Ciao @ eel-gheez, hai capito cosa fare a riguardo? Come creare PRs isolati senza mostrare le modifiche da altri rami? –

2

In realtà PUOI farlo senza creare un altro ramo, ma ci vuole un po 'di gioco.
Ecco i passaggi:

  1. identificare i due commit gamme si vuole tirare. Ecco cosa userò per un esempio:
    (altro/master) A -> B -> C -> D -> E (tuo/master)
    Diciamo che vuoi tirare B e C in una richiesta e D & E in un altro.
  2. Effettuare una richiesta di pull. Avere il lato sinistro ("Base") essere commit A. Per il lato destro ("testa"), digitare il numero di commit di C.
  3. Scrivi la descrizione per la tua prima richiesta.
  4. Fare un'altra richiesta. Per la base, digitare il numero di commit di C, e per la testa, inserire E (yours/master).
  5. Scrivi la descrizione.

Come vedo, la richiesta pull vede commit C come punto di diramazione. O qualcosa.

+0

Devi lasciare altro/master come lato sinistro anche se stai aggiungendo un numero di commit da tuo/master. Inoltre, questo metodo non consente di aggiungere nuovi commit alla richiesta di unione, nel caso siano necessarie ulteriori modifiche. – frisco

+0

Ho postato un seguito di questa risposta, a differenza di alcune informazioni su Github, vedi http://stackoverflow.com/questions/23159860 –

10

Il modo più semplice che ho trovato di fare ciò è con il comando hub (https://github.com/defunkt/hub).

Dal tuo argomento ramo ("funzionalità" in questo esempio) che si desidera creare una richiesta di pull per, si può semplicemente eseguire:

git pull-request 

(ricordarsi di spingere il vostro primo ramo!)

E aprirà una nuova richiesta pull su GitHub per "YOUR_USER: feature".

Se hai già creato un problema su GitHub, si può anche allegare una richiesta di pull a tale questione esistente (cosa che non si può fare da interfaccia utente web):

$ git pull-request -i 123 
[ attached pull request to issue #123 ] 
Problemi correlati