Articolo originale: Git Checkout Explained: How to Checkout, Change, or Switch a Branch in Git

Il comando git checkout consente di passare da un branch (o ramo) all'altro o di ripristinare i file dell'albero di lavoro. Esistono diverse opzioni per questo comando che non verranno trattate in questo articolo, ma è possibile consultarle tutte nella documentazione di Git.

Effettuare il checkout di uno specifico commit

Per eseguire il checkout di un commit specifico, esegui il comando:

git checkout id-commit-specifico

Possiamo recuperare l'id di uno specifico commit eseguendo:

git log

Effettuare il checkout di un branch esistente

Per eseguire il checkout di un branch esistente, esegui il comando:

git checkout NOME-BRANCH

In genere, Git non consente di eseguire il checkout di un altro branch a meno che la directory di lavoro non sia pulita, perché si perderebbero tutte le modifiche della directory di lavoro di cui non è stato ancora effettuato un commit. Ci sono tre opzioni per gestire tali modifiche: 1) eliminarle, 2) effettuare un commit che le include o 3) spostarle nell'area di stash.

Effettuare il checkout di un nuovo branch

Per creare e contemporaneamente spostarsi nel nuovo branch con un singolo comando, è possibile eseguire:

git checkout -b NOME-NUOVO-BRANCH

In questo modo si passerà automaticamente al nuovo branch, dopo averlo creato.

Effettuare il checkout di un nuovo branch o ripristinare un branch

Il seguente comando è molto simile al comando che permette di creare e contemporaneamente spostarsi in nuovo branch, ma utilizza l'opzione -B (in questo caso la B è maiuscola) e un parametro opzionale START-POINT:

git checkout -B NOME-BRANCH START-POINT

Se il branch NOME-BRANCH non esiste, allora Git lo creerà e lo farà partire dal punto indicato dal parametro START-POINT. Se, invece, il branch NOME-BRANCH esiste, allora Git lo ripristinerà al punto del branch indicato dal parametro START-POINT. L'esecuzione di quest'ultimo comando è equivalente all'esecuzione di git branch con l'opzione -f.

Forzare un Checkout

È possibile passare l'opzione -f o --force  al comando git checkout per forzare Git a cambiare branch, anche in presenza di modifiche della directory di lavoro di cui non è stato ancora effettuato un commit (in altre parole, l'indice dell'albero di lavoro è diverso da HEAD). In pratica, questo comando può essere usato per eliminare le modifiche locali.

Eseguendo il comando seguente, Git ignorerà le modifiche esistenti e si sposterà di branch:

git checkout -f NOME-BRANCH

# Alternativa
git checkout --force NOME-BRANCH

Annullare le modifiche nella directory di lavoro

È possibile usare il comando git checkout per annullare le modifiche apportate a un file nella directory di lavoro. In questo modo il file tornerà alla versione presente nell'HEAD:

git checkout -- NOME-FILE