Flusso di lavoro del manutentore n.

Questa pagina è per i manutentori — quelli di noi che uniscono le nostre modifiche o quelle di altre persone nel repository originale.

Essendo come un manutentore, sei completamente al di sopra delle cose di base nel flusso di lavoro di sviluppo .

Le istruzioni in Collegamento del repository al repository upstream aggiungono un telecomando con accesso in sola lettura al repository upstream. Essendo un manutentore, hai accesso in lettura e scrittura.

È bello che il tuo telecomando upstream abbia un nome spaventoso, per ricordarti che è un telecomando di lettura-scrittura:

git remote add upstream-rw [email protected]:matplotlib/matplotlib.git
git fetch upstream-rw

Integrazione delle modifiche #

Supponiamo che tu abbia alcune modifiche che devono essere inserite nel trunk ( upstream-rw/main).

Le modifiche sono in qualche ramo in cui ti trovi attualmente. Ad esempio, stai guardando le modifiche di qualcuno in questo modo:

git remote add someone https://github.com/someone/matplotlib.git
git fetch someone
git branch cool-feature --track someone/cool-feature
git checkout cool-feature

Quindi ora sei sul ramo con le modifiche da incorporare a monte. Il resto di questa sezione presuppone che tu sia su questo ramo.

Alcuni commit #

Se ci sono solo pochi commit, prendi in considerazione il rebasing su upstream:

# Fetch upstream changes
git fetch upstream-rw
# rebase
git rebase upstream-rw/main

Ricorda che, se esegui un rebase e lo invii, dovrai chiudere manualmente tutte le richieste pull github, perché github non sarà in grado di rilevare che le modifiche sono già state unite.

Una lunga serie di commit #

Se sono presenti una serie più lunga di commit correlati, considera invece un'unione:

git fetch upstream-rw
git merge --no-ff upstream-rw/main

L'unione verrà rilevata da github e dovrebbe chiudere automaticamente tutte le richieste pull correlate.

Nota quanto --no-ffsopra. Questo costringe git a fare un merge commit, piuttosto che fare un fast-forward, in modo che questi set di commit si diramano dal trunk e poi si ricongiungano alla cronologia principale con un merge, piuttosto che sembrare che siano stati fatti direttamente sopra il trunk.

Controlla la cronologia #

Ora, in entrambi i casi, dovresti controllare che la cronologia sia sensata e che tu abbia i commit giusti:

git log --oneline --graph
git log -p upstream-rw/main..

La prima riga in alto mostra solo la cronologia in modo compatto, con una rappresentazione testuale del grafico della cronologia. La seconda riga mostra il registro dei commit esclusi quelli raggiungibili dal trunk ( upstream-rw/main), e inclusi quelli raggiungibili dall'HEAD corrente (implicito con .. alla fine). Quindi, mostra i commit univoci per questo ramo rispetto al tronco. L' -popzione mostra la differenza per questi commit sotto forma di patch.

Spingi al tronco #

git push upstream-rw my-new-feature:main

Questo spinge il my-new-featureramo in questo repository al main ramo nel upstream-rwrepository.