2013-02-11 3 views
65

Qui ci sono passi di contributi di codice dal tema "How do I contribute to other's code in GitHub?"Richiesta di pull senza biforcazione?

  1. Forcella progetto
  2. formulare una o più ben commentato e pulite commit al repository. Puoi creare un nuovo ramo qui se stai modificando più di una parte o funzione.
  3. Esegue una richiesta di pull nell'interfaccia web di github.

È possibile effettuare una richiesta di pull senza fork di un repository?

È piuttosto triste vedere più di 20 repository nel mio account che sono stati biforcati per alcune richieste di pull. Non hanno attività allora e zero stelle/follower. Sembra che sto solo copiando il codice di qualcuno per un giorno nero.

+0

Perché si vuole a? –

+2

Buona domanda. Non è neanche chiaro se i 20 repository siano aggiornati con l'originale (o cancellati). –

risposta

59

Se non si dispone dell'accesso per creare succursali su quel repository, non c'è nessun modo per creare una richiesta di pull senza forking.

+4

Puoi spiegare come puoi creare una richiesta di pull se hai accesso alle filiali su quel repository? – bolinfest

+10

GitHub ha una buona guida al riguardo: https://help.github.com/articles/creating-a-pull-request/ –

20

Una volta accettate le richieste di pull, è possibile safely delete the repo se non si è intenzionati a lavorarci sopra e clonare direttamente dal repository originale di upstream.

Se avete altre richieste pull per fare, allora si dovrebbe fare nel loro rispettivo ramo, che significa che è possibile eliminare il ramo che hai fatto per gestire una richiesta di pull accettato (come in "My pull request has been merged, what to do next?")

+2

FYI, github ha recentemente aggiunto un pulsante per unire le richieste di pull per renderlo facile (e intuitivo) eliminare il ramo di richiesta pull: https://github.com/blog/1335-tidying-up-after-pull-requests –

7

Per definizione, una richiesta pull implica un fork, a meno che non si abbia accesso al dominio di destinazione. Si può fare un paio di cose, però:

  1. Se fai abbia l'accesso commit, creare un ramo e rendere la vostra richiesta di pull contro la nuova filiale.
  2. Pubblica la tua patch nel corpo di un problema. Questo non è davvero il modo GitHub, ma sicuramente funziona.
  3. Fork un repository, creare una richiesta pull e quindi eliminare il fork una volta che la richiesta pull viene unificata o rifiutata.

Se si sta solo cercando di evitare di conservare repository in giro che non si sta utilizzando attivamente, suggerisco personalmente l'opzione n. Si attiene al flusso di lavoro GitHub accettato senza ingombrare la dashboard.

6

github supporta Shared Repository Model

Lo Shared Repository modello è più diffuso, con piccole squadre e le organizzazioni che collaborano su progetti privati. A tutti viene concesso l'accesso push a un singolo repository condiviso e le branch topic vengono utilizzate per isolare le modifiche.

Le richieste di trascinamento sono particolarmente utili nel modello di derivazione della forcella & poiché forniscono un modo per notificare ai manutentori del progetto le modifiche apportate alla forcella. Tuttavia, sono anche utili nel modello di archivio condiviso in cui vengono utilizzati per avviare la revisione del codice e la discussione generale su un insieme di modifiche prima di essere unite in un ramo principale.

+2

Nota come questo non spiega come creare una richiesta pull in questo modello. – bolinfest

0

È comunque necessario che one-liner: hub fork;git push -u $GIT_USER HEAD;hub pull-request