🚀 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

Mensagens de commit alimentadas por LLM que entendem seu código!

Automatize seus commits! Substitua git commit -m "..." por uvx gac para mensagens de commit contextuais e bem formatadas geradas por modelos de linguagem grandes!


O Que Você Obtém

Mensagens inteligentes e contextuais que explicam o porquê por trás de suas alterações:

GAC gerando uma mensagem de commit contextual


Início Rápido

uvx gac init   # Configure seu provedor, modelo e idioma
uvx gac  # Gere e envie commit com LLM

É isso! Revise a mensagem gerada e confirme com y.


Recursos Principais

33+ Provedores suportados

  • 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)

🧠 Análise Inteligente de LLM

  • Entende a intenção: Analisa estrutura, lógica e padrões do código para entender o "porquê" por trás de suas alterações, não apenas o que mudou
  • Consciência semântica: Reconhece refatoração, correções de bugs, funcionalidades e alterações quebrando para gerar mensagens contextualmente apropriadas
  • Filtragem inteligente: Prioriza alterações significativas enquanto ignora arquivos gerados, dependências e artefatos
  • Agrupamento inteligente de commits - Agrupa automaticamente alterações relacionadas em múltiplos commits lógicos com --group

📝 Múltiplos Formatos de Mensagem

  • Uma linha (flag -o): Mensagem de commit de uma única linha seguindo formato de commit convencional
  • Padrão (padrão): Resumo com pontos de bullet explicando detalhes da implementação
  • Verboso (flag -v): Explicações abrangentes incluindo motivação, abordagem técnica e análise de impacto
  • Regra 50/72 (bandeira --50-72): Impõe o formato clássico de mensagem de commit para legibilidade ótima no git log e GitHub UI
  • DCO/Signoff (bandeira --signoff): Adiciona linha Signed-off-by para conformidade com Developer Certificate of Origin (exigido por Cherry Studio, Linux kernel e outros projetos)

🌍 Suporte Multilíngue

  • 25+ idiomas: Gere mensagens de commit em inglês, chinês, japonês, coreano, espanhol, francês, alemão e 18+ idiomas
  • Tradução flexível: Escolha manter prefixos de commit convencionais em inglês para compatibilidade de ferramentas, ou traduza-os completamente
  • Múltiplos workflows: Defina um idioma padrão com uvx gac language, ou use a flag -l <idioma> para substituições únicas
  • Suporte a script nativo: Suporte completo para scripts não-latinos incluindo CJK, cirílico, tailandês e mais

💻 Experiência do Desenvolvedor

  • Feedback interativo: Digite r para rerolar, e para editar (TUI in-place por padrão, ou $GAC_EDITOR se definido), ou digite diretamente seu feedback como make it shorter ou focus on the bug fix
  • Questionamento interativo: Use --interactive (-i) para responder a perguntas direcionadas sobre suas alterações para mensagens de commit mais contextuais
  • Workflows de um comando: Workflows completos com flags como uvx gac -ayp (adicionar tudo, auto-confirmar, push)
  • Integração Git: Respeita hooks pre-commit e lefthook, executando-os antes de operações LLM caras
  • Servidor MCP: Execute uvx gac serve para expor ferramentas de commit para agentes de IA através do Model Context Protocol

📊 Estatísticas de Uso

uvx gac stats               # Visão geral: gacs totais, sequências, picos diários/semanais, projetos e modelos principais
uvx gac stats models        # Detalhamento por modelo: gacs, tokens, latência, velocidade, gráficos latência por commit
uvx gac stats projects      # Detalhamento por projeto: gacs, commits, tokens, arquivos médios por gac em todos os repositórios
uvx gac stats recent        # Histórico recente de gacs: tokens, velocidade, latência, arquivos por gac (-n 20 para mais)
uvx gac stats reset         # Redefinir todas as estatísticas (solicita confirmação)
uvx gac stats reset model <model-id>  # Redefinir estatísticas apenas para um modelo específico
  • Acompanhe seus gacs: Veja quantos commits você fez com gac, sua sequência atual, pico de atividade diária/semanal e projetos principais
  • Rastreamento de tokens: Tokens totais de prompt, output e raciocínio por dia, semana, projeto e modelo — com troféus de recorde para uso de tokens também
  • Modelos principais: Veja quais modelos você mais usa e quantos tokens cada um consome
  • Celebrações de recordes: 🏆 troféus quando você estabelece novos recordes diários, semanais, de tokens ou de sequência; 🥈 por empatá-los
  • Opt-in durante a configuração: uvx gac init pergunta se você deseja ativar as estatísticas e explica exatamente o que é armazenado
  • Opt-out a qualquer momento: Defina GAC_DISABLE_STATS=true (ou 1/yes/on) para desativar. Definir como false/0/no (ou não definir) mantém as estatísticas ativadas
  • Privacidade em primeiro lugar: Armazenado localmente em ~/.gac_stats.json. Apenas contagens, datas, nomes de projetos e nomes de modelos — sem mensagens de commit, código ou dados pessoais. Sem telemetria

🛡️ Segurança Integrada

  • Detecção automática de segredos: Examina em busca de chaves API, senhas e tokens antes de commitar
  • Proteção interativa: Solicita antes de cometer dados potencialmente sensíveis com claras opções de remediação
  • Filtragem inteligente: Ignora arquivos de exemplo, arquivos de template e texto placeholder para reduzir falsos positivos

Exemplos de Uso

Workflow Básico

# Prepare suas alterações
git add .

# Gere e envie commit com LLM
uvx gac

# Revise → y (commit) | n (cancelar) | r (rerolar) | e (editar) | ou digite feedback

Comandos Comuns

ComandoDescrição
uvx gacGerar mensagem de commit
uvx gac -yAuto-confirmar (sem necessidade de revisão)
uvx gac -aAdicionar tudo antes de gerar mensagem de commit
uvx gac -SSelecionar interativamente ficheiros para stage
uvx gac -oMensagem de uma linha para alterações triviais
uvx gac -vFormato verboso com Motivação, Abordagem Técnica e Análise de Impacto
uvx gac -h "hint"Adicionar contexto para LLM (ex: uvx gac -h "bug fix")
uvx gac -sIncluir escopo (ex: feat(auth):)
uvx gac -iFazer perguntas sobre alterações para melhor contexto
uvx gac -gAgrupar alterações em múltiplos commits lógicos
uvx gac -pFazer commit e push
uvx gac modelAlterar provedor e modelo de IA
uvx gac statsVeja suas estatísticas de uso do gac

Exemplos para Usuários Avançados

# Workflow completo em um comando
# Veja suas estatísticas de commits
uvx gac stats

# Estatísticas de todos os projetos
uvx gac stats projects

uvx gac -ayp -h "preparação de release"

# Explicação detalhada com escopo
uvx gac -v -s

# Mensagem rápida de uma linha para pequenas alterações
uvx gac -o

# Gerar mensagem de commit em um idioma específico
uvx gac -l pt

# Agrupe alterações em commits logicamente relacionados
uvx gac -ag

# Modo interativo com saída detalhada para explicações detalhadas
uvx gac -iv

# Debugue o que o LLM vê
uvx gac --show-prompt

# Pule verificação de segurança (use com cuidado)
uvx gac --skip-secret-scan

# Adicionar signoff para conformidade DCO (Cherry Studio, Linux kernel, etc.)
uvx gac --signoff

Sistema de Feedback Interativo

Não satisfeito com o resultado? Você tem várias opções:

# Reroll simples (sem feedback)
r

# Edite a mensagem de commit
e

# Ou simplesmente digite seu feedback diretamente!
make it shorter and focus on the performance improvement
use conventional commit format with scope
explain the security implications

# Pressione Enter em entrada vazia para ver o prompt novamente

O recurso de edição (e) permite refinar a mensagem de commit:

  • Por padrão (TUI in-place): Edição multi-linha com keybindings vi/emacs — corrigir erros de digitação, ajustar redação, reestruturar
  • Com GAC_EDITOR: Abre o seu editor preferido (code, vim, nano, etc.) — poder total do editor incluindo localizar/substituir, macros, etc.

Editores GUI como VS Code são tratados automaticamente: gac insere --wait para que o processo bloqueie até você fechar a aba do editor. Nenhuma configuração extra necessária.


Configuração

Execute uvx gac init para configurar seu provedor interativamente, ou defina variáveis de ambiente:

Precisa mudar provedores ou modelos depois sem tocar nas configurações de idioma? Use uvx gac model para um fluxo simplificado que pula os prompts de idioma.

Veja .gac.env.example para todas as opções disponíveis.

Quer mensagens de commit em outro idioma? Execute uvx gac language para selecionar entre 25+ idiomas incluindo Español, Français, 日本語, e mais.

Quer personalizar o estilo da mensagem de commit? Veja docs/CUSTOM_SYSTEM_PROMPTS.md para orientação sobre como escrever prompts de sistema personalizados.


Obtendo Ajuda


⭐ Nos dê uma estrela no GitHub🐛 Reporte problemas📖 Documentação completa