2013-02-16 18 views
48

Come inviare una richiesta di pull da un repository esistente clonato localmente?Come inviare una richiesta di pull da un repository clonato?

Spesso, voglio dare un'occhiata al codice sorgente di alcune librerie da github, quindi lo clone. Più tardi, scopro qualche problema con il codice e lo rilancio su una mailing list, spesso di passaggio. L'autore della biblioteca dice "bella scoperta, puoi inviare una richiesta di pull?".

E la risposta è "non così facilmente". Non ho ancora biforcato il repository, l'ho clonato. E non sembra un modo per trovare una richiesta di pull da un repository clonato?

Se questo limite è vero, sembra che la reazione ragionevole sia quella di puntare tutto e tutto ciò che guardi sempre, solo così che se tu potessi voler contribuire, puoi farlo. E questo riempie il tuo account github con molte forcelle inattive.

Non sembra molto parlare di questo problema - sono l'unica persona a cui questo problema interessa?

+2

Dal notato questa domanda molto simile: http://stackoverflow.com/questions/4209208/how-to-convert-a-readonly-git- clone-da-github-a-a-forked-one –

risposta

38

Forcella repo su GitHub, quindi aggiungere il repo forchetta come un telecomando per la vostra copia clonata locale:

git remote add myfork https://github.com/<myGitHubAccountName>/<repoName>.git 

quindi si può spingere per la forcella:

git push myfork master 

Se sei facendo più di una sola richiesta pull, è possibile rimuovere il telecomando origin e denominare la forcella come origine:

Questo è tipicamente quello che faccio. A volte aggiungo l'origine originale come upstream quindi ho ancora un riferimento.

+4

Come si fa a fare questo senza forking? –

+2

Se si dispone dell'accesso push a un repository, è possibile aprire una richiesta di pull tra i rami di tale repository. Dovrai inserire la tua diramazione locale su un nuovo nome di ramo su 'origin' - qualcosa come' git push origine HEAD: my-feature'. Quindi puoi utilizzare l'interfaccia utente web per aprire una richiesta pull da 'my-feature' a' master'. – bobthecow

+0

Funziona come un fascino! –

7

Se si sta installando un altro binario nel proprio percorso, github ha rilasciato un piccolo strumento chiamato hub.

Se hai clonato repo di qualcun altro:

$ hub fork # This creates a fork and adds your repo as a remote 

$ git push YOUR_USER feature # push the changes to your new remote 

$ hub pull-request # will open your browser 
Problemi correlati