Comandi Git essenziali per il controllo di versione – ramificazione, commit, merge e collaborazione.
Configura Git e imposta la tua identità
# Imposta il tuo nome e l'email
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Controlla la tua configurazione
git config --list
# Imposta il nome del ramo predefinito
git config --global init.defaultBranch main# Imposta l'editor predefinito
git config --global core.editor "code --wait"
# Abilita l'output a colori
git config --global color.ui auto
# Configura l'helper delle credenziali (Windows)
git config --global credential.helper wincredInizializza o clona repository Git
# Inizializza un nuovo repository
git init
# Inizializza con nome di ramo specifico
git init -b main
# Clona un repository esistente
git clone https://github.com/user/repo.git
# Clona in una directory specifica
git clone https://github.com/user/repo.git my-folderComandi comuni per l'uso quotidiano di Git
# Controlla lo stato del repository
git status
# Aggiungi file all'area di staging
git add file.txt
git add . # Aggiungi tutti i file
git add *.js # Aggiungi tutti i file JavaScript
# Effettua il commit delle modifiche
git commit -m "Commit message"
git commit -am "Message" # Aggiungi e commetti i file tracciati
# Visualizza la cronologia dei commit
git log
git log --oneline # Vista compatta
git log --graph # Mostra il grafo dei ramiCrea e gestisci rami
# Elenca i rami
git branch # Rami locali
git branch -a # Tutti i rami (locali + remoti)
# Crea un nuovo ramo
git branch feature-branch
# Passa a un ramo
git checkout feature-branch
git switch feature-branch # Alternativa moderna
# Crea e passa a un nuovo ramo
git checkout -b feature-branch
git switch -c feature-branch# Unisci un ramo nel ramo corrente
git merge feature-branch
# Elimina un ramo
git branch -d feature-branch # Eliminazione sicura
git branch -D feature-branch # Eliminazione forzata
# Rinomina un ramo
git branch -m old-name new-nameLavora con repository remoti
# Elenca i repository remoti
git remote -v
# Aggiungi un repository remoto
git remote add origin https://github.com/user/repo.git
# Recupera le modifiche dal remoto
git fetch origin
# Esegui il pull delle modifiche dal remoto
git pull origin main
# Invia le modifiche al remoto
git push origin main
git push -u origin main # Imposta l'upstream e invia# Rimuovi un remoto
git remote remove origin
# Rinomina un remoto
git remote rename old-name new-name
# Cambia l'URL del remoto
git remote set-url origin https://github.com/user/new-repo.gitRipristina o resetta le modifiche
# Scarta le modifiche nella directory di lavoro
git restore file.txt
git checkout -- file.txt # Metodo vecchio
# Rimuovi i file dall'area di staging
git restore --staged file.txt
git reset HEAD file.txt # Metodo vecchio
# Modifica l'ultimo commit
git commit --amend -m "New message"
# Ripristina un commit (crea un nuovo commit)
git revert <commit-hash># Reset al commit precedente (attenzione!)
git reset --soft HEAD~1 # Mantieni le modifiche in staging
git reset --mixed HEAD~1 # Mantieni le modifiche non staged
git reset --hard HEAD~1 # Scarta tutte le modifiche
# Reset a un commit specifico
git reset --hard <commit-hash>Salva temporaneamente le modifiche
# Accumula le modifiche correnti
git stash
git stash save "Work in progress"
# Elenca gli stash
git stash list
# Applica lo stash
git stash apply # Mantieni lo stash
git stash pop # Applica e rimuovi lo stash
# Applica uno stash specifico
git stash apply stash@{0}
# Elimina lo stash
git stash drop stash@{0}
git stash clear # Elimina tutti gli stashIspeziona differenze e cronologia
# Mostra le modifiche non staged
git diff
# Mostra le modifiche staged
git diff --staged
git diff --cached
# Mostra le modifiche tra commit
git diff commit1 commit2
# Mostra le modifiche in un file specifico
git diff file.txt# Mostra i dettagli del commit
git show <commit-hash>
# Mostra il file in un commit specifico
git show <commit-hash>:file.txt
# Mostra chi ha modificato cosa in un file
git blame file.txtCrea e gestisci etichette di versione
# Elenca le etichette
git tag
# Crea un tag leggero
git tag v1.0.0
# Crea un tag annotato
git tag -a v1.0.0 -m "Version 1.0.0"
# Tagga un commit specifico
git tag -a v1.0.0 <commit-hash> -m "Message"
# Invia i tag al remoto
git push origin v1.0.0
git push origin --tags # Invia tutti i tag
# Elimina il tag
git tag -d v1.0.0
git push origin --delete v1.0.0Altri comandi Git utili
# Pulisci i file non tracciati
git clean -n # Esecuzione di prova
git clean -f # Rimuovi i file
git clean -fd # Rimuovi file e directory
# Cerca nel repository
git grep "search term"
# Mostra chi ha modificato un file
git log --follow file.txt
# Crea alias
git config --global alias.st status
git config --global alias.co checkout# Ignora le modifiche al file
git update-index --assume-unchanged file.txt
# Riprendi il tracciamento delle modifiche al file
git update-index --no-assume-unchanged file.txt
# Mostra i file tracciati
git ls-files