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 conupstreammaintainer - dopo aver spinto il tuofeature-branchnel 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 ?