Richiesta di pull senza biforcazione?


105

Di seguito sono riportati i passaggi del contributo del codice dall'argomento " Come posso contribuire al codice di altri in GitHub? "

  1. Biforca il progetto
  2. Effettua uno o più commit puliti e ben commentati nel repository. Puoi creare un nuovo ramo qui se stai modificando più di una parte o funzione.
  3. Esegui una richiesta pull nell'interfaccia web di GitHub.

È possibile effettuare una richiesta pull senza biforcare un repo?

È piuttosto triste vedere più di 20 repository nel mio account che sono stati biforcati per alcune richieste pull. Allora non hanno attività e zero stelle / follower. Sembra che sto solo copiando il codice di qualcuno per una giornata nera.


Perché dovresti volerlo?

3
Buona domanda. Inoltre, non è chiaro per aggiornare quei 20 repository con l'originale (o eliminarli).
Corey Alix

Risposte:


95

Se non hai accesso per creare rami su quel repository, non c'è modo di creare una richiesta pull senza fork .


8
Puoi per favore spiegare come puoi creare una richiesta pull se hai accesso ai rami su quel repository?
bolinfest

13
GitHub ha una buona guida al riguardo: help.github.com/articles/creating-a-pull-request
Ryan Bigg

2
Solo un promemoria per qualcosa che potrebbe non essere così chiaro a tutti. Devi creare un fork per ogni repository a cui contribuisci ... ma la creazione di branch nel tuo fork ti consente di lavorare uno più di un PR contemporaneamente per il repository upstream. Non hai bisogno di 20 fork dallo stesso repo per contribuire con 20 PR.
JulioHM

24

Una volta accettate le richieste pull, puoi eliminare in sicurezza il repository .

Successivamente, è sufficiente clonare direttamente dal repository originale a monte.

Se hai altre richieste pull da fare, dovresti farle nel rispettivo ramo, il che significa che puoi eliminare in sicurezza il ramo che hai fatto per gestire una richiesta pull accettata (come in "La mia richiesta pullèstata unita, cosa fare il prossimo? ")


2
Cordiali saluti, github ha recentemente aggiunto un pulsante alle richieste pull unite per rendere facile (e intuitivo) eliminare il ramo della richiesta pull: github.com/blog/1335-tidying-up-after-pull-requests
David M

10

Per definizione, una richiesta pull implica un fork a meno che non si disponga dell'accesso con commit al repository di destinazione. Puoi fare un paio di cose, però:

  1. Se non avere 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 è proprio il modo di GitHub, ma certamente funziona.
  3. Eseguire il fork di un repository, creare una richiesta pull e quindi eliminare il fork una volta che la richiesta pull è stata unita o rifiutata.

Se stai solo cercando di evitare di tenere in giro repository che non stai utilizzando attivamente, suggerisco personalmente l'opzione n. 3. Si attacca al flusso di lavoro GitHub accettato senza ingombrare la dashboard.


Probabilmente è meglio metterlo qui: 4. Mantenere un secondo account Github solo per gestire questi scenari pull-request-and-forget. Non importa se quell'account ha 20 repository inattivi, poiché non è l'account principale.
tanius

7

github supporta il modello di repository condiviso

Il modello di repository condiviso è più diffuso con piccoli team e organizzazioni che collaborano a progetti privati. A tutti viene concesso l'accesso push a un singolo repository condiviso e i rami degli argomenti vengono utilizzati per isolare le modifiche.

Le richieste pull sono particolarmente utili nel modello Fork & Pull perché forniscono un modo per notificare ai manutentori del progetto le modifiche nel tuo fork. Tuttavia, sono anche utili nel modello di repository condiviso in cui vengono utilizzati per avviare la revisione del codice e la discussione generale su una serie di modifiche prima di essere uniti in un ramo principale.


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

0

Hai ancora bisogno di quella battuta: hub fork;git push -u $GIT_USER HEAD;hub pull-request

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.