Skip to content

Modulo 05 — Committare in dettaglio

Il flag -m permette di passare il messaggio inline invece di aprire l’editor:

Terminal window
git commit -m "il mio messaggio"

Situazione tipica: hai appena committato e ti accorgi di aver dimenticato un file, o di avere un refuso nel messaggio. Invece di creare un commit aggiuntivo, puoi “rifare” l’ultimo:

Terminal window
git commit -m "qualche commit"
git add file_dimenticato.txt
git commit --amend

L’amend riscrive l’ultimo commit (nuovo hash): nel repo resta un solo commit, con il file incluso e/o il messaggio corretto.

  • Commit early, commit often: commit frequenti = più punti di ripristino.
  • Commit atomici: raggruppa modifiche simili; non committare mille cose insieme.
  • Messaggi significativi ma concisi.

Quando possibile, un commit dovrebbe coprire una sola feature, modifica o fix. Vantaggi:

  • molto più facile annullare o fare rollback in seguito;
  • il progetto è più semplice da revisionare.

La documentazione ufficiale di Git suggerisce lo stile imperativo al presente (“make xyzzy do frotz”, non “makes xyzzy…” o “I changed xyzzy…”) — come se dessi un ordine alla codebase.

Ma non è obbligatorio: molti developer preferiscono il passato. Ciò che conta davvero è la coerenza, soprattutto in team dove molti committano.

git commit senza -m apre un editor: è quello configurato in Git (vedi git config). Può cambiare a piacere.

git help <comando> (o git <comando> --help) apre la documentazione ufficiale: quando un comando ha opzioni dimenticate, i docs sono la fonte definitiva.

Serve a dire a Git quali file/directory non tracciare mai. Utile per:

  • segreti, API key, credenziali;
  • file del sistema operativo (es. .DS_Store su macOS);
  • file di log;
  • dipendenze e pacchetti (es. node_modules).

Crea un file .gitignore nella radice del repository e scrivi pattern, uno per riga:

.DS_Store # ignora i file con questo nome
folderName/ # ignora un'intera directory
*.log # ignora tutti i file con estensione .log

Il file .gitignore va a sua volta committato, così le regole valgono per tutto il team.