Introduzione
Guida essenziale per iniziare ad utilizzare Git 2.x.
Prerequisiti
Installa e configura Git su Ubuntu: Segui questa guida
Creare un nuovo repository
Crea una nuova cartella, da terminale:
mkdir nuovacartella
Entriamoci e creiamo un nuovo repository Git con i seguenti comandi:
cd nuovacartella
git init
Checkout di un repository
Crea una copia di un repository locale eseguendo da terminale il comando:
git clone /percorso/del/repository
Usando invece un server remoto, il comando sarà:
git clone utente@host:/percorso/del/repository
Ambiente di lavoro
La tua copia locale del repository è composta da tre "alberi" mantenuti da git. Il primo è la tua Directory di lavoro che contiene i files attuali. Il secondo è l'Index che fa da spazio di transito per i files e per finire l'HEAD che punta all'ultimo commit fatto.
Effettuare delle modifiche
Dopo aver modificato i file interessati puoi aggiungerli all'index con i seguenti comandi.
Per specificare un file:
git add <nomedelfile>
Per selezionare tutti i file: nuovi, modificati e cancellati:
git add -A
Oppure:
git add --all
Il seguente comando non presenta differenze rispetto a git add -A, quindi è possibile utilizzarli allo stesso modo:
git add .
Se non si vuole selezionare i file cancellati:
git add --ignore-removal .
Se si vuole selezionare solamente i file modificati e cancellati, quindi non i nuovi:
git add -u
Oppure:
git add --update
Per validare queste modifiche fatte da terminale:
git commit -m "Messaggio"
Ora il file è correttamente nell'HEAD, ma non ancora nel repository remoto.
Inviare le modifiche
Le modifiche che hai effettuare ora si trovano nell'HEAD della copia locale. Per inviare queste modifiche al repository remoto, dai questo comando:
git push origin master
Se non si vuole inviare direttamente le modifiche al branch principale (master) è possibile cambiare master con il branch al quale vuoi inviare i cambiamenti:
git push origin nome_del_branch
Se non hai copiato un repository esistente, e vuoi connettere il tuo repository ad un server remoto, devi aggiungerlo con il seguente comando:
git remote add origin <indirizzo_del_repository>
Ora sarai in grado di inviare le tue modifiche al server remoto.
Branching
I branch ('ramificazioni') sono utilizzati per sviluppare features che sono isolate l'una dall'altra. Il branch master è quello di default quando crei un repository. Puoi usare altri branch per lo sviluppo ed infine incorporarli ('merge') nel master branch una volta completati.
Crea un nuovo branch chiamato "mio_branch" e passa al nuovo branch:
git checkout -b mio_branch
Per cancellare un branch bisogna prima tornare su quello principale o su un'altro branch:
git checkout master
Quindi per cancellare il branch creato in precedenza:
git branch -d mio_branch
Il branch non potrà essere utilizzatao da altri fino a quando non verrà inviato al repository remoto:
git push origin <nome_del_branch>
Aggiorna e unisci
Per aggiornare il tuo repository locale al commit più recente in remoto:
git pull
Puoi incorporare un altro branch nel tuo branch attivo (ad esempio master).
Ad esempio se vuoi unire il tuo branch al principale master, devi prima passare su master:
git checkout master
Quindi per unire il tuo branch al master:
git merge <nome_del_branch>
Git proverà ad unire le modifiche in automatico. In alcuni casi potrebbero esserci dei conflitti. Dopo aver cambiato i file con conflitti, dovrai marcarli come 'corretti' tramite questo comando:
git add <nomedelfile>
Prima di immettere le modifiche, potrai anche visualizzarne un'anteprima:
git diff <branch_sorgente> <branch_target>
Tags
È raccomandato creare dei tags nel caso in cui il software venga rilasciato. Puoi creare un tag chiamato 1.0.0 eseguendo questo comando:
git tag 1.0.0 4b5e4d64ff
la sequenza 4b5e4d64ff sta per i primi 10 caratteri del commit che si vuol referenziare tramite questo tag. Puoi ottenere l'id del commit:
git log
Si possono utilizzare anche meno caratteri per l'id del commit, basta che sia unico.
Sostituire modifiche in locale
Nel caso tu abbia commesso qualche errore puoi sostituire i cambiamenti fatti in locale con il comando:
git checkout -- <nomedelfile>
Con questo comando si sostituiscono le modifiche nell'albero di lavoro con l'ultimo contenuto presente in HEAD. I cambiamenti fatti ed aggiunti all'index, così come i nuovi files, verranno mantenuti.
Altrimenti se vuoi eliminare tutte le modifiche e commits effettuati in locale, puoi recuperare l'ultima versione dal server e far puntare il tuo master branch alla versione principale in questo modo:
git fetch origin
git reset --hard origin/master
La guida è terminata.