Skip to content

Scorciatoie Comandi Git Cheat Sheet

Git è un sistema di controllo della versione distribuito open-source in grado di gestire in modo efficiente e veloce la gestione delle versioni di progetti da molto piccoli a molto grandi. Git è un software di controllo della versione open-source sviluppato da Linus Torvalds per aiutare a gestire lo sviluppo del kernel Linux.

Concetti Base di Git

git init <directory>

Crea un repository Git vuoto nella directory specificata. Se eseguito senza parametri, inizializza la directory corrente come repository Git.

git clone <repo>

Clona il repository situato in <repo> sulla macchina locale. Il repository originale può trovarsi sul file system locale o su una macchina remota tramite HTTP o SSH.

git config user.name <name>

Definisce il nome dell’autore da utilizzare per tutti i commit nel repository corrente.

git add <directory>

Aggiunge le modifiche in <directory> per il prossimo commit.

git commit -m "<message>"

Esegue il commit dell’istantanea di staging, utilizzando <message> come messaggio di commit.

git status

Elenca i file che sono in staging, non in staging e non tracciati.

git log

Mostra l’intera cronologia dei commit utilizzando il formato predefinito.

git diff

Confronta le differenze tra la directory di lavoro (non ancora aggiunta con git add) e l’area di staging (dopo git add).

Annullare le Modifiche

git revert <commit>

Crea un nuovo commit che annulla tutte le modifiche apportate in <commit> e lo applica al branch corrente.

git reset <file>

Rimuove <file> dall’area di staging ma mantiene invariata la directory di lavoro. Questo toglie un file dallo staging senza sovrascrivere alcuna modifica.

git clean -n

Mostra quali file verranno rimossi dalla directory di lavoro. Usa il flag -f invece di -n per eseguire la pulizia.

Riscrivere la Cronologia

git commit --amend

Modifica l’ultimo evento di commit di Git. Se la directory di lavoro ha modifiche da committare, tali modifiche verranno committate insieme quando si usa il comando git commit –amend.

git rebase <base>

Reimposta il branch corrente su <base>. <base> può essere un ID commit, un nome branch, un tag o HEAD.

git reflog

Consente di visualizzare tutti i record delle operazioni di tutti i branch (inclusi i record di commit eliminati e le operazioni di reset).

Branching Git

git branch

Elenca tutti i branch. Aggiungi un parametro <branch> per creare un nuovo branch chiamato <branch>.

git checkout -b <branch>

Crea e seleziona un nuovo branch chiamato <branch>. Ometti -b per selezionare un branch esistente.

git merge <branch>

Unisce il branch <branch> nel branch corrente.

Repository Remoti

git remote add <name> <url>

Aggiunge un nuovo repository remoto. Dopo aver aggiunto il remoto, puoi utilizzare <name> come scorciatoia per <url> in altri comandi.

git fetch <remote> <branch>

Recupera tutti gli aggiornamenti del specificato dal repository, ma non esegue il merge con il branch locale.

git pull <remote>

Recupera la copia remota specificata del branch corrente e la unisce immediatamente nella copia locale.

git push <remote> <branch>

Invia il branch a <remote>, insieme ai commit e agli oggetti necessari. Se il repository remoto non esiste, viene creato un branch con nome nel repository remoto.

git config

git config --global user.name <name>

Definisce il nome dell’autore per tutti i commit dell’utente corrente.

git config --global user.email <email>

Definisce l’email dell’autore per tutti i commit dell’utente corrente.

git config --global alias.<alias-name> <git-command>

Crea una scorciatoia (alias) per un comando Git.

git config --system core.editor <editor>

Imposta l’editor di testo utilizzato dai comandi per tutti gli utenti sul computer.

git config --global --edit

Apre il file di configurazione globale in un editor di testo per la modifica manuale.

git log

git log -<limit>

Mostra gli ultimi <limit> record della cronologia dei commit.

git log --oneline

Mostra la cronologia dei commit, comprimendo ogni commit in una singola riga.

git log -p

Mostra la cronologia dei commit e il diff completo per ogni commit.

git log --stat

Mostra la cronologia dei commit, inclusi i file modificati e il numero relativo di righe aggiunte o eliminate da ciascun file.

git log --author="<pattern>"

Cerca i commit di uno specifico autore.

git log --grep="<pattern>"

Cerca nella cronologia dei commit utilizzando la corrispondenza delle espressioni regolari.

git log <since>..<until>

Mostra i commit avvenuti tra <since> e <until>.

git log -- <file>

Mostra solo i record di commit che contengono il file specificato.

git diff

git diff HEAD

Confronta le differenze tra la directory di lavoro (non ancora aggiunta con git add) e il repository (dopo git commit).

git diff --cached

Confronta le differenze tra l’area di staging (dopo git add) e il repository (dopo git commit).

git reset

git reset

Reimposta l’area di staging per farla corrispondere al commit più recente, ma mantiene invariata la directory di lavoro.

git reset --hard

Reimposta sia l’area di staging che la directory di lavoro al commit più recente, sovrascrivendo tutte le modifiche nella directory di lavoro.

git reset <commit>

Sposta il puntatore del branch corrente all’indietro fino a <commit> e reimposta l’area di staging, ma non modifica la directory di lavoro.

git reset --hard <commit>

Uguale a sopra, ma reimposta sia l’area di staging che la directory di lavoro. Elimina le modifiche non committate e tutti i commit dopo <commit>.

git pull

git pull --rebase <remote>

Recupera la copia remota del branch corrente e ne esegue il rebase sulla copia locale. Usa git rebase invece di merge per integrare i branch.

git push

git push <remote> --force

Push forzato (Force push).

git push <remote> --all

Invia tutti i branch locali al remoto specificato.

git push <remote> --tags

Invia tutti i tag locali al repository remoto.