Inizia a Scrivere Migliori Messaggi Commit
I messaggi di commit sono spesso trascurati e sottovalutati dalla maggior parte degli sviluppatori solisti e, a volte, anche da piccoli team.
Credimi, se non stai valorizzando i messaggi di commit, ti ritroverai su un sentiero oscuro quando il tuo progetto diventerà più grande.
Perché abbiamo bisogno di buoni messaggi di commit?
A volte mi piace addentrarmi nelle cattive pratiche per capire davvero il pieno valore e la ragione per cui le persone fanno le cose in un certo modo.
Questo è esattamente ciò che ho fatto per i messaggi di commit: ho iniziato la mia piccola app che, come ogni progetto, alla fine è diventato più grande mentre utilizzavo messaggi di commit generici per tutto il tempo.
Ad esempio, stavo cambiando qualcosa nel codice?
git commit -m "changes"
e se stavo risolvendo qualcosa?
git commit -m "fix"
Questo ha causato così tanti problemi lungo il cammino:
Quando ero al quarto mese, non avevo alcun riferimento su ciò che avevo fatto all'inizio del progetto, non potevo capire perché alcuni commit erano stati fatti e se quella parte del codice era ancora valida o no, e questo mi ha fatto perdere circa 3–4 giorni in totale per capire le cose.
In una fase successiva, si è unito al progetto un altro sviluppatore che ha avuto la stessa sensazione ed era super spaventato dall'idea di toccare qualsiasi cosa.
Era molto difficile, anche nel breve termine, capire da quale commit proveniva la regressione o il bug, era tutto molto estenuante e richiedeva molto tempo. Spendere 5 secondi in più per scrivere un buon messaggio di commit ti farà risparmiare ore o giorni di debugging in futuro. Fidati.
Come scriviamo buoni messaggi di commit? Ci sono molti modi in cui le persone scrivono buoni messaggi di commit, ma c'è uno standard che ho visto in molte aziende per cui ho lavorato e che funziona a meraviglia:
Commit Convenzionali
La specifica dei Commit Convenzionali è una leggera convenzione sopra i messaggi di commit. Fornisce un insieme facile di regole per creare una cronologia di commit esplicita; ciò rende più facile scrivere strumenti automatizzati sopra di essa. Questa convenzione si allinea con SemVer, descrivendo le caratteristiche, le correzioni e i cambiamenti significativi fatti nei messaggi di commit.
e sembra qualcosa del genere:
Messaggio di commit con descrizione e piè di pagina per cambiamenti significativi
feat: permettere all'oggetto di configurazione fornito di estendere altre configurazioni
CAMBIAMENTO SIGNIFICATIVO: la chiave extends nel file di configurazione è ora utilizzata per estendere altri file di configurazione
Messaggio di commit con descrizione e piè di pagina per cambiamenti significativi
feat: allow provided config object to extend other configs
Questa è solo una convenzione, e puoi personalizzarla quanto vuoi, tuttavia, esistono anche alcuni script e npm packages per controllare automaticamente se questa convenzione è rispettata.