Git cheat sheet, organizzato per ciò che vuoi fare
Git cheat sheet
Git cheat sheet per attività: comandi, annullamenti e npm | We.Inc
Un Git cheat sheet ricercabile e organizzato per attività: avviare, salvare, branch, merge, sincronizzare e fare deploy, più ricette "ho combinato un guaio" per annullare, un diagramma di dove vivono le modifiche e i comandi npm più comuni.
La maggior parte del lavoro quotidiano con Git si riduce a sei comandi: git status per vedere le modifiche, git add per metterle in staging, git commit -m per salvare, git switch -c per creare un branch, git pull per ricevere gli aggiornamenti e git push per condividere. Per annullare, usa git restore per i file, git reset per i commit locali e git revert per i commit già inviati.
Annullare in sintesi
Cosa annullare
Comando
Modifiche a un file
git restore file
Staging
git restore --staged file
Ultimo commit, non inviato
git reset --soft HEAD~1
Un commit già inviato
git revert <commit>
Cerca tra i comandi qui sotto, copia qualsiasi riga con un clic e usa le ricette quando qualcosa è andato storto. I comandi usano git switch e git restore, i sostituti più chiari per i tanti compiti di git checkout.
Scrivi una parola come undo, branch o tag nel campo di ricerca.
Copia il comando e sostituisci il nome del tuo branch o file.
Guarda il diagramma per capire tra quali aree un comando sposta le modifiche.
Esegui git status prima e dopo qualsiasi operazione che riscrive la cronologia.
Fai commit piccoli e frequenti; i commit piccoli sono facili da annullare e da revisionare.
Non fare mai reset o force-push su un branch usato da altre persone. Usa revert.
Preferisci --force-with-lease a --force; si rifiuta di procedere se qualcun altro ha fatto push.
Scrivi i messaggi di commit descrivendo cosa fa la modifica: "Aggiungi modulo di prenotazione", non "modifiche".
Tieni i segreti in file di ambiente elencati in .gitignore fin dal primo commit.
Domande frequenti
Qual è la differenza tra git reset e git revert?
reset sposta indietro il tuo branch, rimuovendo commit dalla sua cronologia; va bene per il lavoro locale. revert aggiunge un nuovo commit che annulla uno vecchio, lasciando intatta la cronologia, ed è la scelta sicura una volta che un commit è stato inviato.
git switch o git checkout?
Funzionano entrambi. Git 2.23 ha aggiunto git switch per cambiare branch e git restore per ripristinare i file, dividendo i due compiti che prima svolgeva git checkout. Sono più facili da leggere e più difficili da usare male.
Cosa fa git fetch che git pull non fa?
fetch scarica i nuovi commit ma non cambia nulla nel tuo branch. pull esegue fetch e poi fa merge o rebase di quei commit nel tuo branch attuale.
Come recupero un commit che ho perso?
Esegui git reflog. Elenca ogni posizione in cui è stato il tuo HEAD, compresi i commit a cui non punta nessun branch. Trova quello che ti serve ed esegui git switch -c rescue <sha>.
npm install o npm ci?
Usa npm install mentre sviluppi; può aggiornare il lock file. Usa npm ci nelle build e in CI; cancella node_modules e installa esattamente ciò che dice il lock file, fallendo se package.json e il lock file non coincidono.
Dove vivono le tue modifiche
Git tiene presenti quattro luoghi: la tua cartella di lavoro, l'area di staging (chiamata anche index), il tuo repository locale e il remote. add sposta le modifiche dalla cartella allo staging, commit dallo staging al repository, push dal tuo repository al remote, e pull riporta giù i commit del remote.
Dal commit a un sito web online
Molti servizi di hosting fanno il deploy quando fai push su un branch. Lavora su un feature branch, fai push per ottenere un'anteprima e fai merge in main per pubblicare. Applica un tag alle release così puoi tornare rapidamente a una versione funzionante nota.
Correzioni passo per passo
Commit su main invece che su un branch
Crea un branch dove ti trovi (conserva i commit), poi riporta main a corrispondere al remote. Fallo solo prima del push.
Risolvere un conflitto di merge
Git si ferma e segna le righe in conflitto. Modifica ogni file alla versione che vuoi, rimuovi i marcatori, poi metti in staging e concludi.
Push di un segreto per errore
Prima di tutto ruota la chiave: una volta inviata, considerala copiata. Poi rimuovila dal codice e dalla cronologia e aggiungi il file a .gitignore.
Stai scrivendo un README per il repository? Usa il
Markdown cheat sheet
Cartella di lavoro
Area di staging
Repository locale
Remote (GitHub, GitLab)
Configura una volta
Nome riportato sui tuoi commit
Email riportata sui tuoi commit
I nuovi repository partono su main
git pull fa rebase invece di creare commit di merge
Avviare un progetto
Trasforma la cartella attuale in un repository
Copia un repository remoto sul tuo computer
Collega un repository locale a un remote
Elenca i remote e i loro URL
Salvare il lavoro
Cosa è cambiato, cosa è in staging
Metti in staging un file
Metti in staging parti di file, blocco per blocco
Fai commit di ciò che è in staging
Modifiche non ancora in staging
Modifiche in staging per il prossimo commit
Cronologia compatta con i branch disegnati
Branch e merge
Crea un branch e spostati su di esso
Spostati su un branch esistente
Elenca i branch locali
Fai merge di quel branch in quello attuale
Riapplica il branch attuale sopra main
Elimina un branch già unito (-D forza)
Copia un commit sul branch attuale
Sincronizzare e fare deploy
Scarica le modifiche remote senza toccare i tuoi file
Fetch, poi merge o rebase nel branch attuale
Fai push di un nuovo branch e ricorda dove va
Fai push del branch attuale
Segna una release
Fai push di quel tag (i tag non vengono inviati di default)
Mettere da parte il lavoro
Metti da parte le modifiche non committate
Vedi cosa c'è nello stash
Recupera l'ultimo stash e rimuovilo dall'elenco
Ho combinato un guaio: ricette
Butta via le modifiche non in staging a un file (non si può annullare)
Togli un file dallo staging ma conserva le modifiche
Correggi il messaggio dell'ultimo commit (o aggiungici i file in staging) prima del push
Annulla l'ultimo commit, mantenendo le sue modifiche in staging
Elimina l'ultimo commit e le sue modifiche (locale, non inviato)
Annulla un commit già inviato con un nuovo commit; sicuro sui branch condivisi
Trova un commit perso dopo un reset o un rebase, poi git switch -c rescue <sha>
Esci da un merge con conflitti
Esci da un rebase andato storto
Commit su main per errore: sposta il lavoro su un branch, poi fai reset di main
Sovrascrivi un branch remoto solo se nessuno ha fatto push dal tuo ultimo fetch
Visualizza in anteprima, poi elimina file e cartelle non tracciati
Crea package.json con i valori predefiniti
Installazione pulita esattamente dal lock file (da usare in CI)
Aggiungi una dipendenza
Aggiungi una dipendenza solo di sviluppo
Rimuovi una dipendenza
Elenca i pacchetti con versioni più recenti
Segnala le vulnerabilità note
Mostra quali versioni di un pacchetto sono installate e perché
Ultima versione pubblicata di un pacchetto
Esegui il comando di un pacchetto senza installarlo