Git è un VCS (Version Control System) che attualmente uso per i miei lavori. Git può essere utilizzato sia in locale che con un repository remoto per poter lavorare in team. Ecco alcune basi e istruzioni su come configurarlo e iniziare ad usarlo.
Innanzi tutto serve installare il software necessario.
yum install git-core
Oppure scarichiamo dal sito git-scm.com i file necessari.
Un paio di piccole personalizzazioni:
git config --global user.name "Nome Cognome"
git config --global user.email "indirizzoemail@dominio.it"
E ora siamo pronti per iniziare ad usare il nostro nuovo amico.
Git funziona semplicemente creando una cartella .git nella root del nostro progetto, dentro la quale salva tutto ciò che gli serve e che non è interessante ai fini di questo post.
Per prima cosa dobbiamo “inizializzare” un repository. Per fare questo dobbiamo andare nella root del nostro progetto:
cd /home/utente/progetti/progettox/
e semplicemente digitare
git init
per dire a Git di creare ciò che gli serve per iniziare a tracciare questa cartella.
Se abbiamo un repository remoto sul quale dobbiamo lavorare serve un’operazione differente:
git clone utente@server:repository.git cartellalocale
Questa istruzione prenderà il repository dal server richiesto e lo scaricherà nella cartella specificata, portando con se tutto lo storico. Se non si specifica un nome per la cartella locale ne verrà creata una nella cartella di esecuzione del comando col nome del repository.
Per collegarsi al server potrebbe essere necessario autenticarsi in qualche modo. Se c’è la possibilità di scegliere consiglio il metodo con chiave pubblica e privata via SSH.
A questo punto abbiamo un progetto con Git e possiamo iniziare a lavorarci. Quando avremo fatto abbastanza modifiche (risolto un bug, aggiunto una funzionalità, ecc..) dovremo procedere al “salvataggio” della versione del nostro software nel seguente modo:
git add .
git commit -m "Commento del commit"
- Il primo comando indica a git di tracciare le modifiche per tutti i file della cartella e delle sottocartelle.
- Il secondo salva le modifiche che abbiamo deciso di aggiungere con un messaggio descrittivo delle modifiche effettuate. Il commento è necessario, e se non lo si specifica usando il parametro -m vi comparirà una schermata di vi per farvi inserire il testo.
Ora abbiamo salvato lo stato del nostro progetto e possiamo procedere con ulteriori modifiche. Quando saremo pronti per effettuare un altro salvataggio basterà ripetere i comandi appena descritti.
Se stiamo lavorando su un progetto con un repository remoto dovremo ogni tanto (il più spesso possibile) inviare i nostri commit al server:
git push origin master
dove origin è il nome default del server remoto e master è il nome del branch che stiamo inviando. (questi termini li spiegherò in qualche articolo più avanzato)
Se stiamo lavorando in gruppo vuol dire che più persone aggiorneranno il repository remoto con le proprie modifiche, e noi dovremo scaricare questi aggiornamenti in locale. Per procedere con questa operazione, che è l’opposto della precedente, useremo
git pull origin master
Noi possiamo fare un push solo se il nostro repository locale è sincronizzato col remoto, quindi spesso sarà necessario fare dei pull per aggiornarsi. Se durante un pull git trova dei conflitti tra i file che scarica e quelli modificati in locale proverà a risolverli in modo automatico, se non dovesse riuscire si dovrà intervenire a mano per indicare il codice corretto. Naturalmente questa è un’operazione delicata, ma può essere semplicemente evitata con una buona organizzazione all’interno del gruppo, evitando che due o più persone lavorino sullo stesso pezzo di codice contemporaneamente.
Altri comandi che potrebbero essere utili sono:
- git log - per vedere lo storico dei commit
- git status - per vedere i file modificati dall’ultimo commit
Per gli utenti windows abituati a lavorare con interfacce grafiche posso consigliare TortoiseGit.