Commit-meddelanden i Git försummas ofta. Många ser dem bara som ett nödvändigt ont för att spara ändringar. Men meningsfulla commit-meddelanden är en avgörande faktor för ett projekts framgång: de säkerställer god spårbarhet av ändringar, effektivt teamsamarbete och snabbare buggfixning. Skäl nog att låta commit-meddelanden förberedas automatiskt med hjälp av AI.
Med hjälp av sk Krokar Går det att använda skript t.ex automatiserad testning eller för att köra kodgranskning på specifika händelser under Git-arbetsflödet. Kundsidan prepare-commit-msg-Hook blir omedelbart före exekveras efter att ha öppnat commit-redigeraren. Till exempel måste följande bash-skript finnas i mappen ~/git-template/hooks/prepare-commit-msg arkiveras:
0d311d3e3743f65bd1f7fa370c3b3848
Lägg sedan till OpenAI API-nyckel i kö \(4\) och, om nödvändigt, ändra ChatGPT-modellen som används i linje \(5\) (i vårt exempel gpt-4o). Sedan gör vi skriptet körbart chmod +x ~/git-template/hooks/prepare-commit-msg och satsa med git config --global core.hooksPath ~/git-template/hooks standardkatalogen för Git hooks i den globala Git-konfigurationen.
Viktigt: Det här betyder att du inte längre behöver skapa lokala Git-hooks i .git/hooks, men i ~/git-template/hooks Om du vill fortsätta ha projektspecifika hooks kan du git config core.hooksPath .git/hooks && ln -s ~/git-template/hooks/prepare-commit-msg .git/hooks/prepare-commit-msg i respektive projekt. Om du vill inaktivera skriptet igen, helt enkelt git config --global --unset core.hooksPath.
Skriptet genererar för diff Alla iscensatta filer får automatiskt en lämplig mall för commit-meddelandet: git add -A . && git commit. Alternativt kan du också skicka ett tomt meddelande ("."), som sedan automatiskt skrivs över: git add -A . && git commit -m "." && git push – Men var försiktig: Validering av meddelandet är inte längre möjligt här.
AI-modellerna är nu så avancerade att de kan generera mycket förnuftiga, automatiska commit-meddelanden baserat på de ändringar som görs. Genom att justera prompten (med början på rad \(13\) kan du ytterligare optimera returen och anpassa den till dina behov. Skriptet fungerar för övrigt även i Git UI-verktyg som Tower och SmartGit .