Come aggiornare un repository GitHub biforcato con modifiche dal repository remoto upstream
Istruzioni dalla Guida di GitHub:
Configurazione di una forcella remota
Sincronizzare una forcella
Istruzioni di installazione / funzionamento:
Apri Git Bash (Windows) o Linux / Mac Terminal
Se non è stato ancora clonato il repository, è necessario passare alla directory di lavoro della cartella di sviluppo e clonarla sulla workstation.
$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git
Passare alla directory di lavoro del repository a forcella sulla workstation.
$ cd /user/development/my_forked_repo/
Elenca il repository remoto attualmente configurato per il tuo fork.
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
Specificare un nuovo repository upstream remoto che verrà sincronizzato con il fork.
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
Verifica il nuovo repository upstream specificato per il tuo fork.
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
Recupera i rami e i rispettivi commit dal repository a monte. Gli commit sul master verranno archiviati in una filiale locale, a monte / master.
$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
Scopri la filiale principale locale del tuo fork.
$ git checkout master
Switched to branch 'master'
Unire le modifiche da upstream / master nel ramo master locale. Questo porta il ramo master del tuo fork in sincronia con il repository upstream, senza perdere le modifiche locali.
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
Se la tua filiale locale non ha avuto alcun commit univoco, Git eseguirà invece un "avanzamento rapido":
$ git merge upstream/master
Updating 34e91da..16c56ad
Fast-forward
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Ora dovrai spingere i commit sul tuo fork.
$ git push
Se non si è già autenticati, verrà richiesto il nome utente / la password github. Una volta autenticati, i nuovi commit dovrebbero essere inseriti nel fork e visibili su github.