Il Git è un software Free utilizzato dagli sviluppatori che permette lo sviluppo condiviso di un singolo progetto, in più programmatori tenendo traccia di ogni singola fase di sviluppo e versione, con la possibilità di gestire eventuali conflitti e in caso di errori, ritornare alla versione di sviluppo precedente (roll back), avere un back-up condiviso.
Il Git viene comunque utilizzato normalmente anche da singoli sviluppatori che operano in un singolo progetto, proprio grazie alle caratteristiche sopra indicate.
Il Git tendenzialmente ha una struttura di questo tipo:
– Un Server Git Remoto (dove al suo interno vengono memorizzate tutte le modifiche Pushate)
– Uno o più Client Git che possono ricevere (Pullare) dal Server Git Remoto le varie modifiche fatte, anche da altri utenti, fino a quel momento o inviare (Pushare) al Server Git Remoto le modifiche apportate al progetto dallo sviluppatore.
Se non si volesse, per qualche motivo, intaccare il progetto principale (master) con le nuove modifiche apportate, è anche possibile lavorare in sezioni parallele chiamate (branch) memorizzate comunque nello stesso progetto Git.
Git è nato per essere usato via Command Line (Console), ma sul mercato ci sono vari tool, free o a pagamento, che permettono l’utilizzo del Git tramite interfaccia (GUI); Il più noto tra questi è SmartGit
Dopo questa piccola descrizione sulle caratteristiche principale del Git, passiamo ai suoi comandi principali.
Installazione di Git
Git sia che venga usato come Server Git Remoto che come Client ha un unico pacchetto di istallazione. Nell’esempio a seguire utilizzeremo un Server Ubuntu 18.04. Per coloro che non avessero a disposizione un Server Ubuntu 18.04 consiglio di visitare il sito internet di Hostinger, un Hosting Provider con i prezzi tra i più competitivi sul mercato.
Per installare Git digitare il seguente comando:
sudo apt-get install git
Server Git Remoto – Inizializzare un Progetto Git
Ipotizziamo di dover sviluppare un nuovo progetto; La prima operazione da fare è creare la Cartella di Progetto all’interno del Server Remoto, dove un Client Git potrà Pushare al suo interno il primo Commit.
Nell’esempio successivo si andrà a creare un nuova Path denominata /opt/Git/myProject all’interno di un Server Ubuntu 18.04.
mkdir /opt/Git mkdir /opt/Git/myProject cd /opt/Git/myProject git init --bare
Grazie a questi comandi è stata creata all’interno del Server Git Remoto, la repository “myProject”. Il passaggio successivo consiste nel clonare la repository appena creata in un Client Git.
Installazione di Git nel Client e Clonazione Repository
Per istallare Git in un altro Server Ubuntu 18.04, il quale verrà utilizzato come Client, sarà sufficiente ripetere il comando di installazione precedentemente descritto:
sudo apt-get install git
Istallato Git sarà sufficiente clonare la repository in /opt/ mediante il seguente comando:
cd /opt/ sudo git clone ssh://root@vostro_IP_o_Dominio:22/opt/Git/myProject
Il prossimo passaggio sarà quello di scaricare dal Server Git Remoto la repository inizializzata (ovviamente vuota). Questo comando dovrà essere ripetuto tutte le volte che si inizierà a lavorare sul progetto.
cd /opt/myProject git pull
Modifica della repository nel Client
Da questo momento in poi si potrà lavorare sul progetto aggiungendo, modificando e rimuovendo files. Terminato l’avanzamento lavori, sarà sufficiente:
– verificare lo stato di Git
– aggiornare l’elenco dei files aggiunti o rimossi
– Committare (descrivere) le modifiche apportate fino a quel momento
– Pushare (inviare) le modifiche al Server Git Remoto
con i seguenti comandi:
git status sudo git add * sudo git checkout -- * sudo git commit -m "commento da aggiungere" sudo git push origin master --force
Come scaricare l’ultima versione di un progetto dal Server Git Remoto, sovrascrivendo tutte le modifiche apportate nel Client Git
Ipotizzando di voler sovrascrivere le modifiche apportate in locale, le operazioni che si dovranno fare sono le seguenti:
– hard reset del codice locale
– pull dell’ultima versione memorizzata in git
sudo git reset --hard sudo git pull
Cambiare collegamento del Git Client verso un altro Server Git Remoto
Nel caso in cui si necessiti di cambiare Server Git Remoto e di dover pullare o pushare da o verso un altro Server, i comandi sono i seguenti:
git remote set-url origin ssh://root@nuovo_IP_o_DNS:22/opt/Git/myProject git remote -v
Cambiare Branch
Per poter operare su un altro branch lasciando intatto quello principale (master) il comando da eseguire nel Git Client è il seguente:
git checkout altro_branch
Modificati i files nel progetto, si dovrà pushare le modifiche con il nuovo branch, creandone uno relativo anche nel Server Git Remoto con i seguenti comandi:
sudo git add * sudo git checkout -- * sudo git commit -m "commento da aggiungere" sudo git push origin altro_branch
Per tornare al branch principale (master), usare il seguente comando:
git checkout master
“Mergeare” (Unire) le modifiche apportate in un altro branch nel branch principale (master)
Dopo aver lavorato in un altro branch ed aver testato che il lavoro svolto e salvato fino a quel momento è pronto per andare in produzione, si potrà procedere ad unire (nel gergo degli sviluppatori, “mergeare” ovvero fare un merge) i due branch.
Per unire altro_branch in master si dovrà prima switchare su master e successivamente fare il merge di altro_branch con i seguenti comandi:
git checkout master git merge altro_branch
Pushare un progetto già sviluppato in Locale verso un Server Git Remoto appena creato
Supponendo di aver già sviluppato un progetto nel computer locale e di volerlo Pushare sul Server Git Remoto alla quale è stata appena inizializzata la repository “myProject”, le operazioni da eseguire nel Client Git (Computer locale) sono le seguenti:
– inizializzare la cartella locale contenente il progetto già sviluppato
– aggiungere l’indirizzo del Sever Git Remoto
– verificare che la connessione sia corretta
– aggiungere tutti i files all’inizializzazione del Git Locale
– fare il checkout
– creare il primo commit
– pushare al Server Git Remoto con branch master
– allineamento tramite il primo pull
I comandi sono i seguenti:
cd /opt/myProject git init git add origin ssh://root@vostro_IP_o_Dominio:22/opt/Git/myProject git remote -v git add * git checkout -- * git commit -m "First Commit" git push origin master git pull origin master
Errori che possono essere riscontrati
un tipico errore che può essere riscontrato è il seguete:
git status error: bad index file sha1 signature fatal: index file corrupt
l’errore può essere risolto resettando l’index. Pertanto accedere alla cartella di progetto ed eseguire i seguenti comandi:
rm -f .git/index git reset