Quindi ecco un tipico flusso di lavoro su Github ...
-
Come alcuni progetti
->
fork it->
git clone https://github.com/you/someproject
. -
Apri progetto. Come quello che vedi, ma apporta alcune modifiche.
-
Avendo fatto attenzione a lavorare solo su
feature-branch
(git checkout -b some-feature
), decidi di effettuare una richiesta pull conupstream
maintainer - dopo aver spinto il tuofeature-branch
nel tuo fork di Github. -
Manutentore, per qualsiasi motivo, rifiuta il pull.
Ad esempio .. ecco una richiesta di pull non riuscita inviata che corrisponde allo scenario precedente. ..
Ora tipicamente , se il maintainer HAD ha unito il pull ... il flusso di lavoro sarebbe stato semplice ... Sul mio computer locale, avrei commesso qualsiasi modifica locale su a prescindere dal fatto che feature-branch
I era attivo al momento ... git fetch --all
, git checkout master
, git pull upstream --ff-only
. Quindi riproduci le mie modifiche in aggiunta, come desiderato ...
MA ...
Che cosa succede se decido di voler continuare a modificare le modifiche apportate alla mia fork, in modo irreprensibile ... eppure voglio ancora essere in grado di tenere traccia + unire le modifiche che si verificano in upstream
? Normalmente, eliminerei il ramo della funzione e procederò come segue. Come mantenere un ramo master
che è possibile unire a monte, ma mantiene le funzioni della forcella pur essendo "permanentemente staccato" da upstream
HEAD
?