developer reference

Git cheat sheet

Reference pratica per usare Git tutti i giorni con ricerca, copia comando e stampa PDF. Finalmente un sito che non ti obbliga a scavare in dieci tab aperti.

Vai ai comandi
42
comandi
9
categorie
0
dipendenze

42 comandi visibili

Init e clone

3 comandi
git init

Inizializza repo nella directory corrente

Init e clonesicuro
Esempio pratico
git init  # oppure con nome
git init myproject
git clone <url>

Clona repo remoto in locale

Init e clonesicuro
Esempio pratico
git clone https://github.com/user/repo.git
# in cartella specifica
git clone <url> myfolder
# solo ultimo commit
git clone --depth 1 <url>

Staging e commit

5 comandi
git status

Mostra file modificati, staged, untracked

Staging e commitsicuro
Esempio pratico
git status
git status -s  # output compatto
git add <file>

Aggiunge file all'area di staging

Staging e commitsicuro
Esempio pratico
git add index.html
git add .  # tutto
git add -p  # interattivo hunk per hunk
git commit -m "<msg>"

Committa staged con messaggio

Staging e commitsicuro
Esempio pratico
git commit -m "feat: add login page"
git commit -am "fix: typo"  # stage+commit
git commit --amend

Modifica l'ultimo commit (msg o contenuto)

Staging e commitattenzione

Sostituisce l’ultimo commit. Concorda la modifica se il commit è già pubblicato.

Esempio pratico
git commit --amend -m "nuovo msg"
# aggiungi file dimenticati
git add file.txt && git commit --amend --no-edit
git rm --cached <file>

Rimuove il file dall’indice Git; il file locale rimane. Fai un commit per interromperne il tracciamento.

Staging e commitattenzione

Il prossimo commit rimuove il file dal repository; la copia locale rimane.

Esempio pratico
git rm --cached secret.env

Stash

6 comandi
git stash

Metti da parte modifiche non committed

Stashsicuro
Esempio pratico
git stash
git stash push -m "wip: login form"
git stash list

Elenca tutti gli stash

Stashsicuro
Esempio pratico
git stash list
git stash pop

Applica uno stash e lo rimuove solo se l’applicazione riesce

Stashattenzione

Controlla i conflitti prima di continuare. Git mantiene lo stash se l’applicazione fallisce.

Esempio pratico
git stash pop
git stash pop stash@{2}
git stash apply [stash@{n}]

Applica stash senza rimuoverlo

Stashsicuro
Esempio pratico
git stash apply stash@{1}
git stash drop [stash@{n}]

Elimina uno stash specifico

Stashattenzione

Elimina lo stash selezionato. Il recupero non è garantito.

Esempio pratico
git stash drop stash@{0}
git stash branch <branch>

Crea branch dallo stash e lo applica

Stashsicuro
Esempio pratico
git stash branch feature/login stash@{0}

Branch e merge

7 comandi
git branch

Elenca branch locali (-a includi remoti)

Branch e mergesicuro
Esempio pratico
git branch
git branch -a
git switch -c <name>

Crea e passa al nuovo branch

Branch e mergesicuro
Esempio pratico
git switch -c feature/auth
# vecchio stile
git checkout -b feature/auth
git switch <branch>

Passa a branch esistente

Branch e mergesicuro
Esempio pratico
git switch main
git switch -  # branch precedente
git rebase <branch>

Riscrive cronologia branch su nuova base

Branch e mergeattenzione

Riscrive la cronologia dei commit. Concorda il rebase di un branch condiviso.

Esempio pratico
git switch feature/auth
git rebase main
git rebase -i HEAD~3  # interattivo: squash/reorder
git branch -d <branch>

Elimina branch (solo se mergiato)

Branch e mergesicuro
Esempio pratico
git branch -d feature/auth
git branch -D feature/auth  # forza

Remote

5 comandi
git push --force-with-lease

Force push sicuro (fallisce se remote ha nuovi commit)

Remoteattenzione

Riscrive la cronologia remota. Verifica il branch e lo stato remoto atteso prima del push.

Esempio pratico
git push --force-with-lease

History e log

4 comandi
git log --oneline --graph

Cronologia compatta con grafico branch

History e logsicuro
Esempio pratico
git log --oneline --graph --decorate
git log -5 --oneline  # ultimi 5
git log -S "<string>"

Trova commit che aggiungono/rimuovono una stringa

History e logsicuro
Esempio pratico
git log -S "apiKey" --oneline
git blame <file>

Chi ha scritto ogni riga del file

History e logsicuro
Esempio pratico
git blame src/main.py
git blame -L 10,20 src/main.py

Undo sicuro

5 comandi
git restore <file>

Scarta modifiche locali non staged

Undo sicuroattenzione

Scarta le modifiche non staged al file selezionato. Git potrebbe non poterle recuperare.

Esempio pratico
git restore index.html
git restore .  # tutto
git reset HEAD~1

Annulla ultimo commit (mantiene modifiche)

Undo sicuroattenzione

Il reset mixed predefinito conserva i file ma svuota lo staging. --hard scarta anche le modifiche ai file tracciati.

Esempio pratico
git reset --soft HEAD~1  # mantiene staged
git reset HEAD~1  # unstage, mantiene file
git reset --hard HEAD~1  # DISTRUGGE modifiche
git clean -fd

Elimina file e dir untracked (irreversibile)

Undo sicuroattenzione

Elimina definitivamente file e directory non tracciati. Controlla prima con git clean -nd.

Esempio pratico
git clean -fdn  # preview
git clean -fd

Diff

3 comandi
git diff

Modifiche non ancora staged

Diffsicuro
Esempio pratico
git diff
git diff src/main.py
git diff --staged

Modifiche staged pronte per il commit

Diffsicuro
Esempio pratico
git diff --staged
git diff <branch1> <branch2>

Confronta due branch

Diffsicuro
Esempio pratico
git diff main feature/auth
git diff --name-only main feature/auth

Config

4 comandi
git config --global user.name "<name>"

Imposta nome utente globale

Configsicuro
Esempio pratico
git config --global user.name "Enzo"
git config --global user.email "<email>"

Imposta email globale

Configsicuro
Esempio pratico
git config --global user.email "enzo@example.com"
git config --global alias.<name> "<cmd>"

Crea alias per un comando

Configsicuro
Esempio pratico
# git lg = log grafico
git config --global alias.lg "log --oneline --graph --decorate"
git config --list

Mostra tutta la configurazione attiva

Configsicuro
Esempio pratico
git config --list --show-origin

Come usare questa cheat sheet Git

Come tolgo un file dallo staging senza perdere le modifiche?

Usa git restore --staged <file>. Per interrompere il tracciamento mantenendo la copia locale, usa git rm --cached <file> e fai un commit della rimozione.

Posso stampare la scheda in PDF?

Usa Stampa PDF. La versione stampabile include tutti i comandi e gli esempi pratici, anche nelle sezioni nascoste dalla ricerca.

Posso usarla in locale?

Sì. Servi i file statici con un server HTTP locale. Ricerca, filtri e copia funzionano nel browser; il tester Regex richiede un contesto HTTP con worker abilitati.