Una volta che ho fatto un PR su un repo, dovrei cancellare la mia forchetta?

6

Sto lavorando a un progetto gratuito su Github. Lo forzo, ho apportato alcune modifiche, fatto un PR e tutto ha funzionato bene (PR è stato accettato).

Poi aggiorno la mia forcella con upstream, ho apportato altre modifiche e ho fatto un altro PR.

Poi mi rendo conto che il mio PR includeva tutti i commit che ho spinto prima e ogni file che modificavo, anche quelli che ho già inviato.

Ho fatto il upstream per essere aggiornato, ma ho fallito da qualche parte, o il mio fork, non ho mai capito che ero aggiornato (ho persino fatto il push).

Quindi per evitare ciò, ho creato un ramo solo con il file che ho modificato. Tuttavia, il PR vuole ancora inviare tutti i commit che ho fatto al repository. I file in questo caso sono ok, solo i file modificati sono sul PR

Quindi, qual è il modo corretto di lavorare con una forchetta?

Ho perso un passaggio dopo l'upstream e spingo? o dovrei cancellare la mia forchetta dopo ogni PR e ricominciare tutto da capo?

    
posta gbianchi 12.04.2018 - 22:10
fonte

1 risposta

9

Ecco i passaggi che devi fare per ottenere una richiesta di pull pulita e piacevole. Generalmente suggerisco questo flusso di lavoro a persone con meno precedente esposizione a git. È possibile creare un rebase su auth repo master, ma ciò potrebbe portare a una fusione non banale, a seconda del delta. Pertanto:

  1. Non eliminare la tua forcella. Quello era un cattivo consiglio nei commenti.

  2. Recupera l'ultimo ramo master dal repository di destinazione sul tuo clone locale (sul tuo computer, non sulla tua forcella).

    git fetch --all

  3. Crea un nuovo ramo basato sull'ultimo ramo master ufficiale

    git checkout -b new-feature origin/master (assumendo che il repository autorevole sia di origine)

  4. Seleziona Cherry tutte le modifiche per la tua seconda richiesta di pull sul tuo nuovo ramo (idealmente con git cherry-pick -n , così puoi fare un nuovo bel commit topico).

    git cherry-pick -n 923c223 (assumendo che le nuove modifiche siano in commit 923c223)

  5. Spingi il nuovo ramo pulito sulla forcella

    git push myfork new-feature

  6. Fai una richiesta di pull dal tuo nuovo ramo pulito sulla tua forcella al master branch ufficiale del repository.

Yay - Ora hai una richiesta di pull con solo le tue nuove modifiche!

Su un sidenote: un piccolo consiglio per te.

In generale, dovresti guardare il tuo clone locale per tutto il lavoro. La forcella è solo un luogo in cui inserire il lavoro finito o semipinito in modo che non svanisca quando il computer locale muore e per collaborare con altri. Avvia sempre nuove modifiche in base all'ultimo master del repository ufficiale / autorevole. Con più esperienza, è molto probabile che tu voglia ribasare le tue modifiche quotidianamente sul master autorevole per mantenere sempre solo un piccolo delta per facilitare l'unione e semplificare il carico cognitivo durante lo sviluppo e la correzione di bug.

    
risposta data 13.04.2018 - 08:59
fonte

Leggi altre domande sui tag