2010-10-27 11 views

risposta

72

sembra una cosa particolarmente utile per aggiungere al comando hub: http://github.com/defunkt/hub o la gemma github: http://github.com/defunkt/github-gem

Suggerisco di deposito di un problema con quei progetti che ne faccia richiesta. I ragazzi github sono piuttosto sensibili.

+6

La github-gem includeva un possibilità di creare richieste pull per età: 'gh pull-request [utente] [ramo]'. –

+4

Funziona senza che Github abbia prima biforcato il repository, cioè da un clone diretto del repository di origine? –

+0

@Holger Solo e chiunque altro: questo crea solo il testo di una richiesta pull e non esclude la necessità di una forcella on-Github. Non ho ancora trovato il modo di aggirarlo. Intendo provare l'utilità 'pullr' pubblicata poco dopo. Vedi [here] (https://github.com/defunkt/github-gem/issues/19) per il problema delle persone che richiedono il supporto completo per la richiesta di pull da github-gem. – mateor

14

Una ricerca uomo come ...

man git | grep pull | grep request 

git request-pull <start> <url> [<end>] 

Ma, nonostante il nome, non sono sicuro che questo fa ciò che si vuole. suggerimento di Holger sembra funzionare:

ghi pull-request [user] [branch] 

Ma avrete bisogno di installare il client github (GH) prima. Su Ubuntu questo è:

sudo apt-get install github-cli 
+3

Sotto Ubuntu 11.10 il comando cli Github è ora ghi –

+1

Quando provo questo ottengo: > GHI pull-richiesta errore: comando 'pull-richiesta' non implementata Sto usando questo: https: // GitHub. com/jsmits/github-cli –

+3

Questo genera un riepilogo delle modifiche in sospeso, non ha nulla a che fare con una richiesta pull rilasciata tramite Github – Flov

1

Ho usato questo strumento prima- anche se sembra ci deve essere una questione aperta prima, è super utile e davvero semplifica il flusso di lavoro se si utilizza github Issue Tracking. git open-pull e quindi una richiesta di pull viene inviata da qualsiasi ramo in cui ci si trova o selezionato. https://github.com/jehiah/git-open-pull

MODIFICA: Sembra che sia possibile creare problemi al volo, quindi questo strumento è una buona soluzione.

25

Con il Hub command-line wrapper è possibile collegarlo a git e allora si può fare git pull-request

Dalla pagina man del mozzo:

git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD] 
      Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one of the following formats: "branch", "owner:branch", 
      "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f. 

      If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message. 

      If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub. 
+2

Non sapeva di Hub, è disponibile tramite homebrew: 'brew install hub' Questa sembra la risposta corretta per gli utenti Mac. – wbarksdale

+0

//, C'è un posto online che potrei indirizzare alla gente per ulteriori informazioni su Hub? –

+0

@NathanBasanese Qui: https://hub.github.com/^_^ –

6

ho finito per fare il mio, trovo che Funziona meglio con le altre soluzioni che c'erano.

https://npmjs.org/package/pullr

+5

Provato a fare pullr -n all'interno del repository clonato. Mi ha dato un errore durante l'apertura .../clonedRepo/undefined/.pullr-token-cache su windows 7. Potresti volere avere un po 'di documentazione in più - come un esempio di utilizzo? –

+0

//, sembra buono. Come possiamo contribuire? –

38

Sembra che questo è ora supportato dalla scatola con il comando 'git request-pull' [-p] <start> <url> [<end>]

È possibile visualizzare la documentazione here

+6

//, funziona comunque con GitHub? –

+3

@NathanBasanese Genera testo leggibile dall'uomo che descrive la richiesta di pull. [Git docs] (http://git-scm.com/docs/git-request-pull) e [GitHub] (https://git-scm.com/book/ch5-2.html#Forked-Public -Project) book dire di inviare questa e-mail al manutentore del progetto, qualcuno con privilegi di scrittura sul repository condiviso (probabilmente github). Il manutentore esamina il testo della richiesta di pull inviato (anziché utilizzare il processo di richiesta pull online di github). Possono fare un 'git pull' dell'url e del ramo indicato nella richiesta pull per unire le modifiche nel clone locale e spingere queste modifiche fino a github. – hobs

3

Questa risposta è un modo alternativo per l'uso attuale di git comando request-pull. Utilizzando questo approccio, non dovresti creare la richiesta di pull direttamente dalla riga di comando, ma piuttosto, dalla riga di comando, renderebbe più rapida e semplice la creazione della richiesta pull su github rimuovendo pochi passaggi.

io non uso il comando di richiesta-pull per due motivi:

  1. trovo cercando il nome dell'altro repository che si vorrebbe fare la richiesta di pull contro, troppo tempo prendendo.
  2. In grado di visualizzare l'anteprima del testo formattato con il contrassegno prima di creare una richiesta di pull.

Perché non automatizziamo la creazione di una scheda per confrontare il ramo corrente con un altro utilizzando la funzionalità di confronto esistente di github?

Ho creato uno script di shell per questo, e ha creato un alias che punta a quello script di shell:

git symbolic-ref HEAD | 
sed -e "s/^refs\/heads\///" | 
awk '{printf "https://github.com/USERACCOUNT/REPOSITORY-NAME/compare/%s?expand=1",$1}' | 
xargs open 

note: USERACCOUTN and REPOSITORY-NAME need to be changed to yours.

consente di mettere questo script in un file chiamato create-pull-request.sh. allora potremmo solo creare un alias per l'esecuzione dello script con l'aggiunta di questa riga al file .bashrc:

alias makepullrequest="sh PATH-TO-THE-SCRIPT/create-pull-request.sh" 
1

Ho creato uno strumento di recente che fa esattamente ciò che si vuole:

https://github.com/jd/git-pull-request

Automatizza tutto in un unico comando, forchetta il repository, spinge il PR ecc. Supporta anche l'aggiornamento del PR se è necessario modificarlo/correggerlo!

Problemi correlati