Cosa è git? tutti i comandi da conoscere

APPUNTI, INFORMATICA, TUTORIAL

In questa serie di articoli cercherò di dare delle indicazioni generali sull’uso di Git andando ad esaminare i comandi più importanti. Cercheremo inoltre di capire come funziona il versioning dei files.

Ma cosa’è Git?

Git è un software  gratuito ed open source che  rientra nella categoria dei  VCS (Version Control System), esso permette di tenere traccia delle modifiche apportate ai files ed alle cartelle di un progetto nel corso del tempo, conservando la storia di tutti i cambiamenti effettuati in modo da poter  accedere alle diverse versioni del progetto in qualunque fase dello sviluppo.

 Quando si sviluppano progetti  o si scrivono documenti che richiedono numerosi cambiamenti un sistema di versioning come GIT potrebbe diventare il tuo migliore amico.

Git come detto è in grado di tener traccia delle modifiche apportate ai files e alle directory. Per funzionare, git salva le informazioni  relative alle diverse versioni di file e cartelle, in un  repository locale,   una cartella chiamata .git, che si trova nella directory del progetto di riferimento.

Git al contrario di altri sistemi di versioning centralizzati è un VCS distribuito. L’architettura distribuita, consente di mantenere un repository locale dei files ( uno per ogni utente ), su cui si potrà lavorare e modificare i files indipendentemente dagli altri utenti in modo veloce ed efficiente ed un repository principale remoto a cui tutti gli utenti fanno riferimento.

Questa modalità non inficia i meccanismi di collaborazione, in quanto  sarà sempre  possibile scambiare le modifiche con  altri operatori, usando il repository principale che potrà essere sincronizzato volta per volta.

Con Git ogni utente potrà scaricare dal repository principale gli aggiornamenti e potrà applicare le modifiche alla copia locale dello stesso. In modo analogo un utente potrà inviare le proprie modifiche al repository principale eseguendo l’operazione ‘push’, di cui vedremo in seguito la sintassi.

In sintesi Git è la scelta migliore per monitorare i cambiamenti di un gruppo di files e cartelle, perché è in grado di salvare uno snapshot di intere directory e di file, di  visualizzare il contenuto di un file o di una cartella ad  una delle versioni salvate.

Grazie a Git in caso di errore o di necessità sarà possibile effettuare un rollback delle modifiche,  ripristinando interamente un file o una cartella o confrontando un file con una precedente versione dello stesso.

Attenzione: non bisogna confondere Git con  GitHub. Git come detto prima è un Version Control System,  GitHub è una piattaforma online creata da Tom Preston-Werner, Chris Wanstrath e PJ Hyett nel nel 2008  che consente gratuitamente l’hosting di repository Git.

Lista Comandi Git

Per creare un nuovo repository locale:

$ git init [nome del progetto]

Per scaricare un repository esistente:

$ git clone [url_del_progetto_git]

Per conoscere i nuovi file creati o quelli modificati non ancora “committati”:

$ git status

Per sapere la lista di tutti i branches locali

$ git branch

Per sapere la lista di tutti i branches locali e remoti

$ git branch -av

Per cambiare branch

$ git checkout [altro_branch]

Per creare uno nuovo branch chiamato “nome_branch”

$ git branch nome_branch

Per cancellare un branch esistente

$ git branch -d nome_branch

Per unire i file di un branch_A con il branch_B

$ git checkout branch_A 

$ git merge branch_B

Per taggare un commit di uno o più files

$ git tag nome_tag

Per conoscere le modifiche sui files:

$ git diff

Per creare la lista dei file da committare

$git add [nome_file]

per creare la lista dei files da committare di una intera directory

$ git add .

Per committare i file in lista

$ git commit -m "commento obbligatorio da inserire"

Per conoscere le ultime modifiche effettuate sul repository principale

$ git fetch

Per recuperare le ultime modifiche fatte

$ git pull

Per inserire (pushare) le ultime modifiche fatte

$ git push

Per avere la storia delle modifiche

$ git log

Per conoscere le modifiche effettuate in un file o in una directory con evidenza di tutte le differenze

git log -p [file/directory]

Per avere un help dei comandi

$ git command --help

Comments