Git commit beskeder med ChatGPT

Commit-beskeder i Git bliver ofte forsømt. Mange ser dem som blot et nødvendigt onde for at redde ændringer. Meningsfulde forpligtelsesbeskeder er en afgørende faktor for et projekts succes: De sikrer god sporbarhed af ændringer, effektivt samarbejde i teamet og hurtigere fejlfinding. Ingen grund til at få commit-beskederne forberedt automatisk ved hjælp af AI.


Ved hjælp af såkaldte Kroge Det er muligt at udføre scripts, for eksempel til automatiseret test eller kodekontrol, for 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 ændrer den ChatGPT-model, der bruges i linje \(5\) (i vores eksempel gpt-4o). Vi gør derefter 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 .

Tilbage