I messaggi di commit in Git vengono spesso trascurati. Molti li considerano semplicemente un male necessario per salvare le modifiche. Tuttavia, messaggi di commit significativi sono un fattore cruciale per il successo di un progetto: garantiscono una buona tracciabilità delle modifiche, una collaborazione efficiente del team e una correzione più rapida dei bug. Un motivo più che valido per automatizzare la generazione dei messaggi di commit tramite l'intelligenza artificiale.
Con l'aiuto dei cosiddetti. Ganci È possibile utilizzare script, ad es test automatizzati o per eseguire la revisione del codice su eventi specifici durante il flusso di lavoro Git. Il lato cliente prepare-commit-msg-L'aggancio è immediato prima Il seguente script bash, ad esempio, deve essere eseguito nella cartella ~/git-template/hooks/prepare-commit-msg essere archiviati:
0d311d3e3743f65bd1f7fa370c3b3848
Quindi aggiungere il Chiave API OpenAI in linea \(4\) e, se necessario, modificare il modello ChatGPT utilizzato in linea \(5\) (nel nostro esempio gpt-4o). Quindi rendiamo eseguibile lo script chmod +x ~/git-template/hooks/prepare-commit-msg e impostare con git config --global core.hooksPath ~/git-template/hooks la cartella predefinita per gli hook di Git nella configurazione globale di Git.
Importante: questo significa che non è più necessario creare hook Git locali in .git/hooks, ma in ~/git-template/hooks Se vuoi continuare ad avere hook specifici del progetto, puoi git config core.hooksPath .git/hooks && ln -s ~/git-template/hooks/prepare-commit-msg .git/hooks/prepare-commit-msg nel rispettivo progetto. Se si desidera disattivare nuovamente lo script, è sufficiente git config --global --unset core.hooksPath.
Lo script genera per il file diff di tutti i file taggati crea automaticamente un modello adatto per il messaggio di commit: git add -A . && git commit. In alternativa, si può anche inviare un messaggio vuoto ("."), che viene sovrascritto automaticamente: git add -A . && git commit -m "." && git push – ma attenzione: la convalida del messaggio non è più possibile in questo caso.
I modelli di intelligenza artificiale sono ora così avanzati da poter generare messaggi di commit automatici e molto sensati in base alle modifiche apportate. Modificando il prompt (a partire dalla riga \(13\) è possibile ottimizzare ulteriormente il risultato e adattarlo alle proprie esigenze. Tra l'altro, lo script funziona anche con strumenti Git UI come Tower e SmartGit .