Code, Learn

Git 🌴 + emoji 😎 = Gitmoji 💡

4 Maggio 2022 - 4 minuti di lettura

Sei stanco di vedere nel tuo log solo tristi e grigi messaggi privi di personalità?
Vorresti ravvivare la tua relazione ormai stanca con git commit -m?
Non riesci più a distinguere un bug da una feature?

Basta preoccuparsi: ho la soluzione giusta per te!

Prova Gitmoji e non dovrai mai più preoccuparti di commit caotici e messaggi poco informativi!

“Gitmoji”? Ma non mi faccia ridere!
Siamo un’azienda rispettabile, non abbiamo certo tempo da perdere con ‘sti disegnini!
Parliamo di GIT, mica di TikkeTokke!

– Mathusalem Boomer, CEO of Oldschool Inc.

Capisco la sua diffidenza, signore, ma abbia la pazienza di seguirmi in questo viaggio nel colorato mondo di Gitmoji, e scoprirà che non stiamo scherzando… tutt’altro, è una faccenda seria.

“Ha presente quando uno sviluppatore, magari annoiato dalla routine o stanco dopo una lunga giornata di debug, prende tutte le modifiche della giornata e le rilascia con un unico commit?
Magari con un messaggio generico come “Bugfix” o “Finished TASK-42”?

Certo, mi dirà lei, ci sono best practice assodate riguardo a come scrivere messaggi di commit migliori e come suddividere i commit.

Verissimo, ma perché non aiutare i nostri sviluppatori a seguire più facilmente tali indicazioni, rendendo al contempo meno monotona quest’attività?

È proprio qui che entrano in gioco le Gitmoji! 🔝

Il progetto Gitmoji fornisce una guida per assegnare a ogni messaggio di commit un’icona appropriata in base al suo contenuto, in maniera standard.

Pur non essendo ancora diffusissimo, è già utilizzato – più o meno timidamente – in alcuni repository pubblici, per esempio:

La spinta principale per questo progetto è quella di rendere immediatamente evidente a colpo d’occhio lo scopo o l’intenzione di ogni commit, dato che un’immagine vale spesso più di mille parole…e richiede un millesimo di tempo al nostro cervello. 😁

Definendo uno standard privo di ambiguità, una singola emoji all’inizio di un messaggio di commit permette di rintracciare velocemente nel log del repository quali sono stati i bugfix, o dove è stata introdotta una nuova feature, o ancora quando sono state aggiornate l’ultima volta le dipendenze del progetto.

Il vantaggio però non è solo a posteriori, quando si consulta la storia dei commit passati: utilizzandolo per diversi mesi all’interno del nostro team di una dozzina di persone, ci siamo resi rapidamente conto che la scelta di seguire questo standard ci spingeva a produrre dei commit migliori, più atomici, e con messaggi più chiari. 😲

Non è così difficile intuire come abbiamo raggiunto questo esito inaspettato: nel momento in cui un commit richiede di essere “classificato” con la giusta emoji, diventa naturale riflettere un attimo in più prima di unificare in un solo commit modifiche di diversi tipi che hanno poco a che fare le une con le altre.

Così, per esempio, potrebbe capitare che risolvendo un bug di un pulsante disabilitato al momento sbagliato, io noti che un campo nella stessa pagina ha un bordo del colore sbagliato (e quindi lo sistemi immediatamente), o che mi accorga di un testo «un pò» sbagliato che correggo in «un po’», o ancora che faccia refactoring di una funzione che ho dovuto analizzare per trovare il bug.

In assenza di Gitmoji, probabilmente, avrei messo nello stesso commit la risoluzione del bug e gli altri tre piccoli aggiustamenti.

Ora, invece, ci tengo a essere più preciso e fare quattro commit diversi:

🐛 Fix disabled submit button
💄  Use standard field border
✏️ Fix typo in description
♻️ Refactor dropdown generation

A volte ci sono modifiche strettamente correlate, che non si possono separare così precisamente, ma nulla vieta di usare due emoji (meglio non andare oltre) nello stesso messaggio:

➕⬆️ Add react-foo and upgrade React

Prima di salutarvi, lascio qualche suggerimento sulle mie Gitmoji preferite e quelle di utilizzo più frequente (nelle due versioni immagine e codice).

🎉 :tada: Un must per il primo commit del repository.

:sparkles: Una nuova feature vede la luce.

🐛 :bug: Un bug è stato risolto.

🔥 :fire: Cancellazione di codice o file…che fa il paio con

⚰️ :coffin: rimozione di codice morto.

💄 :lipstick: Aggiornamenti UI/UX.

🎨 :art: Formattazione del codice.

:white_check_mark: I test, uno dei migliori amici degli sviluppatori, insieme a

♻️ :recycle: refactoring.

🚧 :construction: Lavori in corso: qualcosa di incompleto ma che vale la pena rilasciare su GIT.

Gli ultimi due che voglio citare sono divertenti, ma vanno usati con moderazione:

  • 💩 :poop: Codice dichiaratamente pessimo che ci ripromettiamo di sistemare.
  • 🍻 :beers: Codice scritto “da ubriachi” 🥴

Per tutti gli altri vi rimando al sito ufficiale gitmoji.dev.

🤔 In conclusione, vi suggerisco di provare a usare le Gitmoji e vedere come vi trovate: 😇 non vi costa niente, 🤑 se non l’installazione di Gitmoji-cli o del plugin per il vostro IDE preferito 👍

Articolo scritto da