2012-11-27 21 views
33

È possibile modificare una richiesta pull che qualcun altro ha avviato?Richieste pull Github multiutente

Suppongo di mantenere il progetto X e l'utente A mi ha inviato una richiesta di pull. Ci sono alcune cose che voglio cambiare prima di unirle e posso farle velocemente da solo. Come posso fare questo semplicemente e tenerlo tutto in un PR?

È possibile?

risposta

23

si può fare in questo modo:

Nella tua pronti contro termine,

git checkout -b new-branch 

Quindi inserire il commit dell'utente A nel nuovo ramo:

git pull git://github.com/[User A]/[project-name].git 

Dopodiché puoi cambiarlo come preferisci nel nuovo ramo. E quando si prova e soddisfa con le modifiche, è possibile unire nella tua branch master:

git checkout master 
git merge new-branch 

OK, ora avete il vostro codice con l'utente A e le modifiche.

+1

Cosa fare se non si desidera estrarre il ramo master dell'utente ma un altro ramo nell'albero? http://stackoverflow.com/questions/1709177/git-pull-certain-branch-from-github – netpoetica

+4

Il nome del ramo è un secondo argomento opzionale a 'git pull' – Loren

+4

Penso che' 'git fetch upstream pull//head: '' è meglio di git pull per tirare PRs. –

-3

È possibile! Tutto ciò che devi fare è controllare il ramo che è nella loro richiesta di pull e apportare le modifiche desiderate. Dopo aver eseguito il commit e premuto tali modifiche, dovrebbero essere riportate nella richiesta pull in Github.

+3

Per i futuri lettori: A meno che non mi sbagli, è possibile farlo solo quando il ramo si trova nel repository principale. Considera di provare a unire 'contributor/feature' in' original/master' come proprietario di 'original/master' - non sarai in grado di passare a' contributor/feature' a meno che 'contributor' - la persona che ha inviato la PR - abbia dato che hai accesso al suo repository. –

3

Supponendo di aver letto e di scrivere l'accesso al repository github dell'utente è possibile inviare al ramo da cui proviene la richiesta pull.

Si trova nella parte inferiore della richiesta di pull prima del pulsante MERGE PULL REQUEST.

È possibile aggiungere ulteriori commit a questa richiesta di pull spingendo al ramo XXXXX sul aaaa/zzzzz

0

Non possibile, ma è possibile inviare una seconda richiesta di pull al proprio ramo, che aggiornerebbe la richiesta di pull originale se decidesse di unirlo.

1

Purtroppo, no, il seguente non funziona:

git push -f upstream my-updates:refs/pull/999/head ... ! [remote rejected] my-updates -> refs/pull/999/head (deny updating a hidden ref) error: failed to push some refs ...

+0

Infatti. Questo comportamento è descritto nella documentazione di Github: https://help.github.com/articles/checking-out-pull-requests-locally/#modifying-an-inactive-pull-request-locally – waldyrious

8

Mi rendo conto che è una vecchia questione, ma GitHub ha recentemente introdotto alcune nuove funzionalità che rendono possibile aggiornare in realtà una richiesta di pull presentata da un altro utente.

Quando si crea una nuova richiesta di pull, viene visualizzata una casella di controllo "Consenti modifiche dai manutentori". Questo è abilitato di default.

Con questo in luogo, chiunque abbia l'accesso commit al repository che è la bersaglio della vostra richiesta di pull sarà anche in grado di spingere le modifiche al ramo di repository che è l'origine della richiesta di pull.

Questo è particolarmente utile negli ambienti di team in cui tutti hanno accesso al repository "principale", ma tutto il lavoro viene svolto sui rami delle funzionalità nei singoli fork.Significa che se c'è una richiesta di pull aperta che richiede alcune modifiche e l'autore principale non è disponibile, qualcun altro del team può apportare direttamente gli aggiornamenti necessari, piuttosto che chiudere il PR esistente e aprirne uno nuovo.

Problemi correlati