Github : come aggiornare un fork dal repository ufficiale

Ciao a tutti,
questo post si rivolge agli sviluppatori, e più precisamente a quelli che, come me, utilizzano Github.
Github è un servizio web dedicato allo sviluppo di progetti ( come Google Code ) che utilizza Git come sistema di gestione delle versioni.

Non spiegherò in questo articolo come collegarsi, eseguire pull/push su un repository con Git, per questo vi consiglio l’ottima guida di Github : http://help.github.com/

Parleremo invece di una cosa un pò diversa, ovvero come aggiornare il proprio fork con le ultime modifiche apportate al progetto ufficiale.

Facciamo un esempio pratico, ovvero la procedura che seguo regolarmente partecipando allo sviluppo del core del framework php “Fuel” :

  1. Ho creato un account su Github
  2. Mi sono collegato alla pagina del repository ufficiale del core di Fuel : https://github.com/fuel/core
  3. Ho cliccato sul pulsante “Fork” e successivamente viene creato un repository nel mio account che è un fork del core ufficiale

Bene, ora sono pronto ad eseguire le mie modifiche al codice per poi inviarle ai revisori del progetto ufficiale

… nel frattempo che scrivo il codice per le mie modifiche, il progetto ufficiale viene aggiornato per la correzione di alcuni bug …

e adesso?? Non dovrò scaricare la versione aggiornata e re-incollare tutte le mie modifiche vero??!!!

Certo che no!

Possiamo comunicare a Git che il nostro repository non è indipendente ma è collegato ad un progetto ufficiale dal quale dobbiamo continuamente scaricare gli aggiornamenti.

Ecco i comandi da eseguire nel terminale :

  1. Accediamo alla cartella locale dove risiede il pull del nostro progetto
  2. Aggiungiamo il repository remoto ufficiale al nostro progetto inserendo un nome a piacere per identificare il repo ufficiale ( fuel-core ) ed indicando il link Git del repository
    git remote add fuel-core git://github.com/fuel/core.git 

  3. Eseguiamo un fetch del progetto e successivamente un merge dal branch che ci interessa ( nel mio caso il branch “develop” )
    git fetch fuel-core
    git merge fuel-core/develop

Fatto … abbiamo scaricato le modifiche dal progetto ufficiale e le abbiamo aggiornate nel nostro progetto, ora non ci resta che eseguire un “push”  per aggiornare il nostro repository su Github.

Nel caso in cui un aggiornamento dal repo ufficiale andasse ad interessare delle righe di codice su cui stavate eseguendo delle modifiche, state tranquilli … non verranno sovrascritte ma verrà generato un errore di conflitto che sarà poi da andare a correggere ( in ogni caso fatevi sempre un backup!! :-D )

Happy coding …

 

– AH DIMENTICAVO!!! –

Se utilizzi Mac OS ti consiglio di provare ad utilizzare l’applicazione ufficiale di Github per Mac… http://mac.github.com/