Git commit-meddelanden med ChatGPT

Commit-meddelanden i Git försummas ofta. Många ser dem bara som ett nödvändigt ont för att rädda förändringar. Meningsfulla åtagandebudskap är en avgörande faktor för att ett projekt ska lyckas: De säkerställer god spårbarhet av förändringar, effektivt samarbete inom teamet och snabbare felsökning. Ingen anledning att få commit-meddelandena förberedda automatiskt med hjälp av AI.


Med hjälp av sk Krokar Det är möjligt att köra skript, till exempel för automatiserad testning eller kodkontroll, för 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 modifierar ChatGPT-modellen som används i rad \(5\) (i vårt exempel gpt-4o). Vi gör sedan 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 .

Tillbaka