Skip to content

Comandi Git spiegati

I comandi Git che usi davvero, raggruppati per attività: creare un repository, fotografare il lavoro, creare rami e unirli, leggere la cronologia, condividere con un remoto, annullare gli errori, accantonare il lavoro in stash e gestire file e sottomoduli. Ogni riga abbina il comando a un'invocazione realistica.

Git ha centinaia di comandi, ma il lavoro quotidiano ne richiede solo alcuni. Il modello mentale è: l'albero di lavoro sono i tuoi file, l'indice (area di staging) è il prossimo commit e HEAD è il commit corrente. Fai lo stage, committi, condividi. Leggi spesso lo stato. Tutto ciò che segue presuppone che un comando elencato esista già.

Tabella di riferimento · 55 voci
55 of 55 rows
Configurazione iniziale
Imposta nome, email o editor una volta sola per ogni repository.git config --global user.name "Ada"
Definisci una scorciatoia per un comando che digiti spesso.git config --global alias.co checkout
Crea un nuovo repository nella cartella corrente.git init
Copia un repository remoto sul tuo computer.git clone git@github.com:org/repo.git
Copia solo i commit più recenti di un singolo branch.git clone --depth 1 --single-branch git@github.com:org/repo.git
Basi degli snapshot
Mostra cosa è in stage, cosa è modificato e cosa non è tracciato.git status -sb
Metti in stage le modifiche così entrano nel prossimo commit.git add src/app.ts
Esamina le modifiche blocco per blocco e metti in stage solo quelle che accetti.git add -p src/app.ts
Metti in stage le modifiche di ogni file tracciato senza aggiungere nuovi file.git add -u
Registra le modifiche in stage come nuovo commit.git commit -m "fix: null check"
Sostituisci l'ultimo commit con uno corretto.git commit --amend -m "fix: handle empty input"
Mostra le modifiche non in stage, o quelle in stage con --staged.git diff --staged
Mostra ogni modifica dall'ultimo commit, in stage o no.git diff HEAD
Rami e merge
Elenca, crea o elimina branch.git branch feature-x
Elimina un branch già unito (-D forza l'eliminazione, -a elenca tutti i branch).git branch -d feature-x
Cambia branch (il sostituto moderno di checkout).git switch feature-x
Crea un nuovo branch e passa a esso in un solo passo.git switch -c feature-x
Cambia branch o ripristina file (il comando più vecchio e generico).git checkout feature-x
Porta le modifiche di un altro branch nel branch corrente.git merge feature-x
Annulla un merge in conflitto e riporta il branch allo stato precedente.git merge --abort
Riesegue i commit del branch corrente sopra un altro branch.git rebase main
Unisci, riordina o modifica i commit mentre li riesegue.git rebase -i main
Copia un singolo commit da un altro branch su questo.git cherry-pick a1b2c3d
Contrassegna un commit con un'etichetta leggibile come una versione.git tag -a v1.2.0
Attiva un altro branch in una cartella separata contemporaneamente.git worktree add ../repo-feature feature-x
Ispezionare la cronologia
Sfoglia la cronologia dei commit.git log --oneline --graph --decorate
Sfoglia la cronologia di ogni branch, non solo quella corrente.git log --oneline --graph --all
Mostra il diff completo e il messaggio di un commit.git show HEAD
Mostra chi ha modificato per ultimo ogni riga di un file.git blame src/app.ts
Mostra ogni commit a cui HEAD ha puntato, inclusi quelli scartati.git reflog
Cerca nella cronologia per metà per trovare il commit che ha rotto qualcosa.git bisect start
Riassume i commit per autore.git shortlog -sn
Nomina il commit corrente contando dal tag più vicino.git describe --tags
Collaborazione remota
Elenca o aggiunge repository remoti.git remote add origin <url>
Elenca i remoti con i loro URL di fetch e push.git remote -v
Scarica le modifiche remote senza toccare i tuoi branch.git fetch origin
Scarica le modifiche remote ed elimina i ref dei branch remoti cancellati.git fetch --prune
Scarica e unisce le modifiche remote del branch corrente.git pull --rebase
Invia i commit locali al remoto.git push -u origin feature-x
Sovrascrive il branch remoto, ma solo se nessuno ha spinto prima.git push --force-with-lease origin feature-x
Annullare modifiche
Scarta le modifiche dell'albero di lavoro, oppure le toglie dallo stage.git restore src/app.ts
Toglie un file dallo stage mantenendo le modifiche nell'albero di lavoro.git restore --staged src/app.ts
Sposta il puntatore del branch corrente e, a scelta, l'indice.git reset --hard HEAD~1
Aggiunge un nuovo commit che annulla uno precedente (sicuro da condividere).git revert HEAD
Elimina file e cartelle non tracciati.git clean -fd
Stash
Salva il lavoro non committato e azzera l'albero di lavoro.git stash -u
Mostra ogni stash che hai salvato.git stash list
Riapplica uno stash e lo mantiene in memoria.git stash apply stash@{1}
Elimina uno stash che non serve più.git stash drop stash@{1}
Riapplica lo stash più recente e lo elimina.git stash pop
File e sottomoduli
Sposta o rinomina un file e mette in stage la modifica.git mv old.ts src/new.ts
Elimina un file e mette in stage l'eliminazione.git rm src/old.ts
Traccia un altro repository come cartella dentro questa.git submodule add git@github.com:org/lib.git lib
Attiva solo le cartelle indicate da un repository di grandi dimensioni.git sparse-checkout set src docs
Esporta l'albero di un commit come file tar o zip.git archive -o repo.zip HEAD