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 statusElenca i file che sono in staging, non in staging e non tracciati.
git logMostra l’intera cronologia dei commit utilizzando il formato predefinito.
git diffConfronta 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 -nMostra quali file verranno rimossi dalla directory di lavoro. Usa il flag -f invece di -n per eseguire la pulizia.
Riscrivere la Cronologia
git commit --amendModifica 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 reflogConsente 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 branchElenca 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
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 --editApre 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 --onelineMostra la cronologia dei commit, comprimendo ogni commit in una singola riga.
git log -pMostra la cronologia dei commit e il diff completo per ogni commit.
git log --statMostra 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 HEADConfronta le differenze tra la directory di lavoro (non ancora aggiunta con git add) e il repository (dopo git commit).
git diff --cachedConfronta le differenze tra l’area di staging (dopo git add) e il repository (dopo git commit).
git reset
git resetReimposta l’area di staging per farla corrispondere al commit più recente, ma mantiene invariata la directory di lavoro.
git reset --hardReimposta 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> --forcePush forzato (Force push).
git push <remote> --allInvia tutti i branch locali al remoto specificato.
git push <remote> --tagsInvia tutti i tag locali al repository remoto.