2012-09-30 12 views
39

Ho un repository che è biforcuta da GitHub che ha apportato alcune modifiche ad esso. Tuttavia, in un certo commit, sono stati modificati alcuni file che voglio inviare una richiesta pull, lasciando gli altri file modificati fuori dalla richiesta.Pull-Request per solo determinati file/commit

Le richieste pull si uniscono tutte le commit o devo eseguire qualcosa di speciale per isolare questo commit?

+1

Questo potrebbe essere correlato: [Come git-cherry-raccogliere solo le modifiche a determinati file?] (Http://stackoverflow.com/q/5717026) – jww

+2

@jww Anni dopo e 'git cherry-pick' è diventato assolutamente inestimabile. Avrei dovuto prenderlo molto prima di me. – Qix

risposta

28

Una richiesta di pull è composta da commit completi, è necessario dividere questo commit in due commit separati uno contenente la modifica da inserire nella richiesta pull e l'altro in attesa delle altre modifiche. Per fare questo è necessario git rebase -i, vedere ad esempio How can I split up a Git commit buried in history? per una buona spiegazione su come farlo.

Dopo aver diviso il commit, spostare quelli che si desidera includere in un ramo dell'argomento, vedere ad esempio How to move certain commits to another branch in git?, ma dipende se i commit che effettuano la richiesta di pull sono sequenziali.

Infine, è possibile passare a Github e creare la richiesta di pull dal ramo dell'argomento.

+3

Per la cronaca, 'git cherry-pick' è uno strumento inestimabile. – Qix

+3

Vedo che questa è la risposta accettata; ma dove, esattamente, ci sono i passaggi da eseguire in modo che si possano apportare modifiche a un file in una richiesta pull che modifica più file? – jww

+0

Cosa succede quando sei la persona che unisce la richiesta e non effettua la richiesta? Questo strumento è così zoppo ... – jww

11

Le richieste di stampa consentono di unire i rami. Quindi, se vuoi isolare alcune cose per una richiesta pull, è meglio mettere quelle modifiche in un ramo separato.

Il vantaggio è che è possibile modificare la richiesta di pull premendo nuove modifiche su quel ramo (anche premere -f se è necessario modificare i commit già premuti).

Problemi correlati