Comandi base per utilizzare GIT come repository locale

Wed 06 October 2021

GIT è un software per il versionamento del testo che è diventando lo standard de-facto nel mondo dello sviluppo software.

Le caratteristiche che differenziano GIT rispetto ai software concorrenti sono:

  • facilità di utilizzo
  • efficienza
  • robustezza
  • software distribuito

GIT è un software di versionamento distribuito che consente di versionare codice non avendo come riferimento un unico server master ma consentendo un versionamento su ogni repository di cui si vuole far uso. Questa caratteristica consente di utilizzare GIT sul proprio PC come un repository completo e successivamente metterlo in relazione con altri repository per consentire la sincronizzazione del codice sorgente.

In questo articolo sono analizzate le caratteristiche di GIT come repository locale. L'articolo descrive quali sono i comandi da utilizzare per versionare il codice sorgente.

Inizializzare un repository locale

Per inizializzare un repository GIT locale su una cartella, spostarsi all'interno della cartella

cd nome_cartella

ed eseguire il comando:

git init

Il comando crea all'interno della cartella una cartella nascosta .git che è utilizzata dal repository per lavorare. Per visualizzare la cartella nascosta eseguire il seguente comando:

ls -la

Aree di lavoro del repository locale

Prima di analizzare nel dettaglio i comandi per versionare il codice sorgente, occorre precisare la modalità di lavoro di GIT, per comprendere al meglio come il software di versionamento monitora i file di cui è a conoscenza.

Un repository GIT locale si articola nelle seguenti tre aree:

  • Unstaged Area
  • Staged Area
  • Commit Area

Unstaged Area

L'area denominata unstaged area contiene tutti i file presenti sul file system che non sono stati supervisionati da GIT. Ogni nuovo file creato all'interno di un progetto transita inizialmente all'interno di questa area.

Staged Area

L'area denominata staged area mantiene tutti i file, di cui si hanno delle modifiche rispetto ad una ultima versione presente sul repository, dei quali si vuole eseguire un versionamento al prossimo commit.

In questa area manteniamo le modifiche candidate al prossimo commit. Parlo di modifiche specifiche e non di interi file poiché due modifiche presenti su un file potrebbero risiedere su aree diverse (una sulla unstaged ed una sulla staged).

Commit area

La commit area presenta tutti i commit eseguiti all'interno del repository. Un commit è l'azione atomica che consente di versionare il sorgente all'interno del repository.

Comandi per il passaggio tra le diverse aree di lavoro

Un file, nel suo ciclo di vita, transita nelle aree descritte nel precedente paragrafo. In questo paragrafo affrontiamo il tema di come eseguire il passaggio dei file da un'area all'altra, utilizzando la riga di comando. Occorre precisare che questi passaggi possono essere eseguiti, utilizzando qualsiasi editor testuale che abbia una qualche integrazione con GIT, in modalità grafica.

Passaggio da unstaged a staged area

Per passare un file creato sul file system dall'area unstaged all'area staged eseguire il seguente comando:

git add nome_file

Il comando add consente di aggiungere le modifiche presenti nell'area di unstaged all'interno dell'area staged.

Passaggio da staged a unstaged area

Per eseguire il passaggio inverso, quindi dalla staged alla unstaged area eseguire il comando:

git rm --cached nome_file

L'ultimo comando riposta il file nome_file allo stato di partenza.

Passaggio da staged a commit area

Il passaggio tra la staged e la commit area avviene utilizzando il comando commit. Un commit rappresenta un'unità atomica di memorizzazione che racchiude in se una modifica concettualizzabile. Ogni commit deve necessariamente essere accompagnato da un commento che descrive la volontà dello sviluppatore nell'apportare le modifiche che si vogliono registrare.

Per eseguire un commit, lanciare il seguente comando:

git commit -m "Commento del commit"

Il comando sposterà i file presenti nella staged area all'interno dell'area di commit. Il comando consente di memorizzare le modifiche all'interno del repository creando un nuovo stato finale dei file aggiunti con il commit.

Passaggio da commit a staged area

Per ripristinare la situazione iniziale prima del commit e quindi portare i file dalla commit alla staged area, eseguire il seguente comando:

git reset --soft HEAD^1

Conclusioni e Riferimenti

Gli esempi mostrano i comandi essenziali per utilizzare GIT come repository locale.