2013-02-27 12 views
7

Non ho quasi nessun indizio su git o github e non voglio un indizio. Ma mi capita di avere un bugfix a due righe per un progetto open source qui. Nello spirito della cooperazione e di qualsiasi altra cosa, mi piacerebbe poterlo restituire. Se non mi costa troppo dolore.Come effettuare una richiesta di pull per una singola modifica?

Così, anni fa ho biforcato il repository, poi ogni tanto ho apportato alcune mie modifiche e solo recentemente ho fatto questo bugfix a due righe. Tutto è stato controllato nel ramo principale e reimpostato all'origine. Ora voglio fare una richiesta pull per il solo bugfix a due righe. Sembra che Github non fornisca alcuna funzione del genere.

In retrospettiva, probabilmente avrei dovuto creare un intero ramo di progetto separato prima di creare il mio bugfix su due righe, ma a) questo è troppo disturbo amministrativo per due righe di codice eb) Non sapevo che avrei voglio contribuire con il bugfix quando l'ho scritto. E comunque, è troppo tardi ora.

Potrei creare un nuovo ramo, ma conterrebbe comunque tutte le altre modifiche ai rifiuti. Quindi non mi porta da nessuna parte. Mi piacerebbe creare un nuovo ramo da upstream escludendo tutte le mie modifiche locali, quindi rifare solo questa modifica. Ma non riesco a vedere alcun modo per farlo oltre a creare una forcella completamente nuova, e non voglio una forcella completamente nuova.

In questo momento la mia soluzione migliore è quella di rinunciare: il codice funziona per me ora, non è un mio problema. Qualcuno ha un piano migliore?

+1

'non ho quasi nessun indizio circa git o github e io non voglio un clue.' Ancora venite a chiedere qui per un aiuto su queste cose? Le tue motivazioni potrebbero essere onorevoli, ma hai sicuramente un modo molto strano di esprimerle ... pubblicare un URL pastebin in una chat IRC sarebbe stato più facile. – sjas

+0

Domanda strettamente correlata: [Invia una richiesta pull su GitHub per il solo commit più recente] (http://stackoverflow.com/questions/5256021/send-a-pull-request-on-github-for-only-latest-commit) – sleske

+0

"Mi piacerebbe creare un nuovo ramo da upstream escludendo tutte le mie modifiche locali, quindi rifare solo questa modifica." Hai risposto alla tua stessa domanda. per quanto riguarda i punti elenco con lettere: a) Non è troppo dolore amministrativo b) ora lo sai. Mi raccomando di rimuovere tutti i metadati basati su opinioni dalla domanda, il titolo del post dice abbastanza e la risposta di sotto corrisponde. –

risposta

7

Il modo più semplice per farlo è quello di

  1. impostare un ramo con le modifiche correnti, e tornare sul ramo upstream (il vostro commit deve essere basato sul repo a monte)
  2. creare una nuova filiale per la richiesta di pull
  3. sollevare il commit avere il bug fix
  4. spingere e creare la richiesta di pull

che dà

git branch my-changes 
git stash #just in case you have uncommitted changes 
git checkout -b bugfix upstream/master 
git cherry-pick <bugfix-commit-sha> 
git push --set-upstream origin bugfix 

dove upstream è il repo originale biforcuta

+0

Grazie, funziona benissimo! Segnerò questa domanda e spero di rimandare l'ora del male quando dovrò capirlo per un altro anno o due. –

Problemi correlati