Commit-beskeder i Git bliver ofte overset. Mange ser dem blot som et nødvendigt onde for at gemme ændringer. Men meningsfulde commit-beskeder er en afgørende faktor for et projekts succes: de sikrer god sporbarhed af ændringer, effektivt teamsamarbejde og hurtigere fejlretning. Grund nok til at få commit-beskeder udarbejdet automatisk ved hjælp af AI.
Ved hjælp af såkaldte Kroge Er det muligt at bruge scripts f.eks automatiseret test eller for at køre kodegennemgang på specifikke hændelser under Git-arbejdsgangen. Kundesiden prepare-commit-msg-Hook bliver øjeblikkelig før udføres efter åbning af commit-editoren. For eksempel skal følgende bash-script være i mappen ~/git-template/hooks/prepare-commit-msg blive indgivet:
0d311d3e3743f65bd1f7fa370c3b3848
Tilføj derefter OpenAI API nøgle i kø \(4\) og om nødvendigt ændre ChatGPT-modellen, der bruges på linje \(5\) (i vores eksempel gpt-4o). Så gør vi scriptet eksekverbart chmod +x ~/git-template/hooks/prepare-commit-msg og satse med git config --global core.hooksPath ~/git-template/hooks standardmappen for Git hooks i den globale Git-konfiguration.
Vigtigt: Det betyder, at du ikke længere behøver at oprette lokale Git-hooks i .git/hooks, men i ~/git-template/hooks Hvis du fortsat vil have projektspecifikke hooks, kan du git config core.hooksPath .git/hooks && ln -s ~/git-template/hooks/prepare-commit-msg .git/hooks/prepare-commit-msg i det respektive projekt. Hvis du vil deaktivere scriptet igen, skal du blot git config --global --unset core.hooksPath.
Scriptet genererer til diff Alle iscenesatte filer modtager automatisk en passende skabelon til commit-beskeden: git add -A . && git commit. Alternativt kan du også sende en tom besked ("."), som så automatisk bliver overskrevet: git add -A . && git commit -m "." && git push – Men vær forsigtig: Validering af beskeden er ikke længere mulig her.
AI-modellerne er nu så avancerede, at de kan generere meget fornuftige, automatiske commit-beskeder baseret på de foretagne ændringer. Ved at justere prompten (startende på linje \(13\) kan du yderligere optimere returneringen og tilpasse den til dine behov. Scriptet fungerer i øvrigt også i Git UI-værktøjer som Tower og SmartGit .