🚀 Git Auto Commit (gac)

June 18, 2026 · View on GitHub

🚀 Git Auto Commit (gac)

PyPI version Changelog Python Build Status codecov Ruff mypy Contributions welcome License: MIT

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

LLM-drevne commit-meldinger som forstår koden din!

Automatiser dine commits! Erstatt git commit -m "..." med uvx gac for kontekstuelle, velformaterte commit-meldinger generert av store språkmodeller!


Hva Du Får

Intelligente, kontekstuelle meldinger som forklarer hvorfor bak endringene dine:

GAC generating a contextual commit message


Hurtigstart

uvx gac init   # Konfigurer din leverandør, modell og språk
uvx gac        # Generer og commit med LLM

Det er alt! Gjennomgå den genererte meldingen og bekreft med y.


Nøkkelegenskaper

33+ Støttede leverandører

  • AnthropicAzure OpenAICerebrasChatGPT (OAuth)Chutes.aiClaude Code (OAuth)
  • Crof.aiDeepInfraDeepSeekFireworksGeminiGitHub Copilot (OAuth)Groq
  • Kimi for CodingLilacLM StudioMiniMax.ioMistral AIMoonshot AINeuralwattOllama
  • Ollama CloudOpenAIOpenCode GoOpenRouterPlexus GatewayQwen Cloud (CN & INTL)
  • ReplicateStreamlake/VanchinSynthetic.newTogether AIWafer.aiZ.AI (API & Coding Plans)
  • Custom Endpoints (Anthropic/OpenAI)

🧠 Smart LLM-analyse

  • Forstår intensjon: Analyserer kode-struktur, logikk og mønstre for å forstå "hvorfor" bak endringene dine, ikke bare hva som ble endret
  • Semantisk bevissthet: Gjenkjenner refactoring, bug-fikser, funksjoner og breaking changes for å generere kontekstuelt passende meldinger
  • Intelligent filtrering: Prioriterer meningsfulle endringer mens den ignorerer genererte filer, avhengigheter og artefakter
  • Intelligent commit-gruppering - Grupper automatisk relaterte endringer i flere logiske commits med --group

📝 Flere Meldingsformater

  • En-linjers (-o flagg): Enkel-linjers commit-melding som følger conventional commit-format
  • Standard (standard): Oppsummering med punktliste som forklarer implementeringsdetaljer
  • Utførlig (-v flagg): Oversiktlige forklaringer inkludert motivasjon, teknisk tilnærming og påvirkningsanalyse
  • 50/72-regel (--50-72 flagg): Tvinger det klassiske commit-meldingformatet for optimal lesbarhet i git log og GitHub UI
  • DCO/Signoff (--signoff flagg): Legg til Signed-off-by-linje for Developer Certificate of Origin-samsvar (påkrevd av Cherry Studio, Linux-kjernen og andre prosjekter)

🌍 Flerspråklig Støtte

  • 25+ språk: Generer commit-meldinger på engelsk, kinesisk, japansk, koreansk, spansk, fransk, tysk og 18+ flere språk
  • Fleksibel oversettelse: Velg å beholde conventional commit-prefikser på engelsk for verktøykompatibilitet, eller oversett dem fullstendig
  • Flere arbeidsflyter: Sett et standardspråk med uvx gac language, eller bruk -l <språk> flagget for engangs-overstyring
  • Støtte for det opprinnelige skriptet: Full støtte for ikke-latinske skript inkludert CJK, kyrillisk, thai og mer

💻 Utvikleropplevelse

  • Interaktiv tilbakemelding: Skriv r for å kjøre på nytt, e for å redigere (innebygd TUI som standard, eller $GAC_EDITOR hvis satt), eller skriv direkte tilbakemeldingen din som gjør den kortere eller fokuser på bug-fiksen
  • Interaktiv spørsmålsstilling: Bruk --interactive (-i) for å svare på målrettede spørsmål om endringene dine for mer kontekstuelle commit-meldinger
  • Én-kommandos arbeidsflyter: Komplette arbeidsflyter med flagg som uvx gac -ayp (stage alle, auto-bekreft, push)
  • Git-integrasjon: Respekterer pre-commit og lefthook hooks, og kjører dem før dyre LLM-operasjoner
  • MCP-server: Kjør uvx gac serve for å eksponere commit-verktøy til AI-agenter via Model Context Protocol

📊 Bruksstatistikk

uvx gac stats               # Oversikt: totale gacs, streaks, daglige/ukentlige topper, topprosjekter & -modeller
uvx gac stats models        # Modelloppdelning: gacs, tokens, latens, hastighet, latens-per-commit-diagrammer
uvx gac stats projects      # Prosjektoppdelning: gacs, commits, tokens, snitt filer per gac over alle repoer
uvx gac stats recent        # Nylig gac-historikk: tokens, hastighet, latens, filer per gac (-n 20 for flere)
uvx gac stats reset         # Tilbakestill all statistikk (ber om bekreftelse)
uvx gac stats reset model <model-id>  # Tilbakestill statistikk kun for en spesifikk modell
  • Spor dine gacs: Se hvor mange committer du har gjort med gac, din nåværende streak, topp daglige/ukentlige aktivitet og topprosjekter
  • Token-sporing: Totalt antall prompt-, output- og reasoning-tokens per dag, uke, prosjekt og modell — med highscore-trofeer for tokenbruk også
  • Toppmodeller: Se hvilke modeller du bruker mest og hvor mange tokens hver av dem forbruker
  • Highscore-feiringer: 🏆 trofeer når du setter nye daglige, ukentlige, token- eller streak-rekorder; 🥈 for å tangere dem
  • Opt-in under oppsett: uvx gac init spør om du vil aktivere statistikk og forklarer nøyaktig hva som lagres
  • Opt-out når som helst: Sett GAC_DISABLE_STATS=true (eller 1/yes/on) for å deaktivere. Å sette den til false/0/no (eller fjerne den) holder statistikk aktivert
  • Personvern først: Lagret lokalt i ~/.gac_stats.json. Kun tellinger, datoer, prosjektnavn og modellnavn — ingen commit-meldinger, kode eller personopplysninger. Ingen telemetri

🛡️ Innebygd Sikkerhet

  • Automatisk hemmelighetsoppdagelse: Skanner etter API-nøkler, passord og tokens før commit
  • Interaktiv beskyttelse: Spør før commit av potensielt sensitive data med klare løsningsalternativer
  • Smart filtrering: Ignorerer eksempelfiler, mal-filer og plassholdertekst for å redusere falske positive

Brukseksempler

Enkel Arbeidsflyt

# Stage endringene dine
git add .

# Generer og commit med LLM
uvx gac

# Gjennomgå → y (commit) | n (avbryt) | r (kjør på nytt) | e (rediger) | eller skriv tilbakemelding

Vanlige Kommandoer

KommandoBeskrivelse
uvx gacGenerer commit-melding
uvx gac -yAuto-bekreft (ingen gjennomgang nødvendig)
uvx gac -aStage alle før generering av commit-melding
uvx gac -SInteraktivt velg filer for staging
uvx gac -oEn-linjers melding for trivielle endringer
uvx gac -vUtførlig format med Motivasjon, Teknisk Tilnærming og Påvirkningsanalyse
uvx gac -h "hint"Legg til kontekst for LLM (f.eks., uvx gac -h "bug fix")
uvx gac -sInkluder scope (f.eks., feat(auth):)
uvx gac -iStil spørsmål om endringer for bedre kontekst
uvx gac -gGruppere endringer i flere logiske commits
uvx gac -pCommit og push
uvx gac modelEndre AI-leverandør og modell
uvx gac statsVis din gac-bruksstatistikk

Eksempler for Avanserte Brukere

# Komplett arbeidsflyt i én kommando
# Vis din commitstatistikk
uvx gac stats

# Statistikk for alle prosjekter
uvx gac stats projects

uvx gac -ayp -h "release preparation"

# Detaljert forklaring med scope
uvx gac -v -s

# Rask en-linjers for små endringer
uvx gac -o

# Generer commit-melding på et spesifikt språk
uvx gac -l no

# Grupper endringer i logisk relaterte commits
uvx gac -ag

# Interaktiv modus med utførlig output for detaljerte forklaringer
uvx gac -iv

# Debug hva LLM ser
uvx gac --show-prompt

# Hopp over sikkerhetsskanning (bruk med forsiktighet)
uvx gac --skip-secret-scan

# Legg til signoff for DCO-samsvar (Cherry Studio, Linux-kjernen, etc.)
uvx gac --signoff

Interaktivt Tilbakemeldingssystem

Ikke fornøyd med resultatet? Du har flere alternativer:

# Enkel ny gjennomsyning (ingen tilbakemelding)
r

# Rediger commit-meldingen
e

# Eller skriv bare tilbakemeldingen din direkte!
gjør den kortere og fokuser ytelsesforbedringen
bruk conventional commit-format med scope
forklar sikkerhetsimplikasjonene

# Trykk Enter på tom input for å se prompten på nytt

Redigeringsfunksjonen (e) lar deg forbedre commit-meldingen:

  • Som standard (innebygd TUI): Flerreduers redigering med vi/emacs-tastebindinger — rette skrivefeil, justere ordlyd, omstrukturere
  • Med GAC_EDITOR: Åpner din foretrukne editor (code, vim, nano osv.) — full editorfunksjonalitet inkludert søk/erstatt, makroer osv.

GUI-editorer som VS Code håndteres automatisk: gac setter inn --wait slik at prosessen blokkeres til du lukker editortaben. Ingen ekstra konfigurasjon nødvendig.


Konfigurasjon

Kjør uvx gac init for å konfigurere din leverandør interaktivt, eller sett miljøvariabler:

Trenger du å endre leverandører eller modeller senere uten å røre språkinnstillinger? Bruk uvx gac model for en strømlinjeformet flyt som hopper over språk-spørsmålene.

Se .gac.env.example for alle tilgjengelige alternativer.

Vil du ha commit-meldinger på et annet språk? Kjør uvx gac language for å velge fra 25+ språk inkludert Español, Français, 日本語 og mer.

Vil du tilpasse commit-meldingsstil? Se docs/CUSTOM_SYSTEM_PROMPTS.md for veiledning om å skrive egendefinerte system-prompts.


Få Hjelp


⭐ Star oss på GitHub🐛 Rapporter problemer📖 Full dokumentasjon