🚀 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

Messages de commit alimentés par l'IA qui comprennent votre code !

Automatisez vos commits ! Remplacez git commit -m "..." par uvx gac pour obtenir des messages de commit contextuels et bien formatés générés par des grands modèles de langage !


Ce que vous obtenez

Des messages intelligents et contextuels qui expliquent le pourquoi derrière vos changements :

GAC générant un message de commit contextuel


Démarrage rapide

uvx gac init   # Configurez votre fournisseur, votre modèle et votre langue
uvx gac  # Générez et commitez avec l'IA

C'est tout ! Vérifiez le message généré et confirmez avec y.


Fonctionnalités principales

33+ Fournisseurs pris en charge

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

🧠 Analyse intelligente par l'IA

  • Comprend l'intention : Analyse la structure, la logique et les motifs du code pour comprendre le "pourquoi" derrière vos changements, pas seulement ce qui a changé
  • Conscience sémantique : Reconnaît les refactorisations, corrections de bugs, fonctionnalités et changements cassants pour générer des messages contextuellement appropriés
  • Filtrage intelligent : Donne la priorité aux changements significatifs tout en ignorant les fichiers générés, dépendances et artefacts
  • Regroupement intelligent des commits - Regroupe automatiquement les changements connexes en plusieurs commits logiques avec --group

📝 Formats de messages multiples

  • Une ligne (-o) : Message de commit sur une seule ligne suivant le format de commit conventionnel
  • Standard (par défaut) : Résumé avec points expliquant les détails d'implémentation
  • Détaillé (-v) : Explications complètes incluant motivation, approche technique et analyse d'impact
  • Règle 50/72 (drapeau --50-72) : Applique le format classique de message de commit pour une lisibilité optimale dans git log et l'interface GitHub
  • DCO/Signoff (drapeau --signoff) : Ajoute la ligne Signed-off-by pour la conformité au Developer Certificate of Origin (requis par Cherry Studio, le noyau Linux et autres projets)

🌍 Support multilingue

  • 25+ langues : Générez des messages de commit en anglais, chinois, japonais, coréen, espagnol, français, allemand et 18+ autres langues
  • Traduction flexible : Choisissez de conserver les préfixes de commits conventionnels en anglais pour la compatibilité des outils, ou traduisez-les entièrement
  • Workflows multiples : Définissez une langue par défaut avec uvx gac language, ou utilisez le drapeau -l <langue> pour des remplacements ponctuels
  • Support des scripts natifs : Support complet des scripts non latins incluant CJK, cyrillique, thaï et plus

💻 Expérience développeur

  • Feedback interactif : Tapez r pour relancer, e pour éditer (TUI intégrée par défaut, ou $GAC_EDITOR si défini), ou tapez directement votre feedback comme "rends-le plus court" ou "concentre-toi sur la correction du bug"
  • Interrogation interactive : Utilisez --interactive (-i) pour répondre à des questions ciblées sur vos changements pour des messages de commit plus contextuels
  • Workflows en une commande : Workflows complets avec des drapeaux comme uvx gac -ayp (indexer tout, confirmer automatiquement, pousser)
  • Intégration Git : Respecte les hooks pre-commit et lefthook, en les exécutant avant les opérations coûteuses de l'IA
  • Serveur MCP : Exécutez uvx gac serve pour exposer les outils de commit aux agents IA via le Model Context Protocol

📊 Statistiques d'utilisation

uvx gac stats               # Vue d'ensemble : gacs totaux, séries, pics quotidiens/hebdomadaires, projets et modèles principaux
uvx gac stats models        # Détail par modèle : gacs, tokens, latence, vitesse, graphiques latence par commit
uvx gac stats projects      # Détail par projet : gacs, commits, tokens, fichiers moyens par gac sur tous les dépôts
uvx gac stats recent        # Historique des gacs récents : tokens, vitesse, latence, fichiers par gac (-n 20 pour plus)
uvx gac stats reset         # Réinitialiser toutes les statistiques (demande confirmation)
uvx gac stats reset model <model-id>  # Réinitialiser les statistiques d'un modèle spécifique uniquement
  • Suivez vos gacs : Voyez combien de commits vous avez faits avec gac, votre série actuelle, pics d'activité quotidienne/hebdomadaire et projets principaux
  • Suivi des tokens : Total des tokens de prompt, output et de raisonnement par jour, semaine, projet et modèle — avec des trophées de record pour l'utilisation des tokens aussi
  • Modèles principaux : Voyez quels modèles vous utilisez le plus et combien de tokens chacun consomme
  • Célébrations de records : 🏆 trophées quand vous établissez de nouveaux records quotidiens, hebdomadaires, de tokens ou de série ; 🥈 pour les égaler
  • Opt-in lors de la configuration : uvx gac init vous demande si vous souhaitez activer les statistiques et explique exactement ce qui est stocké
  • Opt-out à tout moment : Définissez GAC_DISABLE_STATS=true (ou 1/yes/on) pour désactiver. Le définir à false/0/no (ou le laisser non défini) garde les statistiques activées
  • Confidentialité d'abord : Stocké localement dans ~/.gac_stats.json. Seulement les compteurs, dates, noms de projets et noms de modèles — pas de messages de commit, de code ni de données personnelles. Pas de télémétrie

🛡️ Sécurité intégrée

  • Détection automatique de secrets : Analyse les clés API, mots de passe et jetons avant le commit
  • Protection interactive : Demande confirmation avant de commiter des données potentiellement sensibles avec des options de remédiation claires
  • Filtrage intelligent : Ignore les fichiers d'exemple, fichiers de modèle et texte de remplacement pour réduire les faux positifs

Exemples d'utilisation

Workflow de base

# Indexez vos changements
git add .

# Générez et commitez avec l'IA
uvx gac

# Vérifiez → y (commit) | n (annuler) | r (relancer) | e (éditer) | ou tapez votre feedback

Commandes courantes

CommandeDescription
uvx gacGénérer un message de commit
uvx gac -yConfirmer automatiquement (pas de vérification nécessaire)
uvx gac -aIndexer tout avant de générer le message de commit
uvx gac -SSélectionner interactivement les fichiers à indexer
uvx gac -oMessage sur une ligne pour les changements triviaux
uvx gac -vFormat détaillé avec Motivation, Approche technique et Analyse d'impact
uvx gac -h "indice"Ajouter du contexte pour l'IA (ex: uvx gac -h "correction de bug")
uvx gac -sInclure une portée (ex: feat(auth):)
uvx gac -iPoser des questions sur les changements pour un meilleur contexte
uvx gac -gGrouper les changements en plusieurs commits logiques
uvx gac -pCommiter et pousser
uvx gac modelChanger le fournisseur et le modèle d'IA
uvx gac statsConsultez vos statistiques d'utilisation de gac

Exemples pour utilisateurs avancés

# Workflow complet en une commande
# Consultez vos statistiques de commits
uvx gac stats

# Statistiques de tous les projets
uvx gac stats projects

uvx gac -ayp -h "préparation de release"

# Explication détaillée avec portée
uvx gac -v -s

# Message rapide sur une ligne pour petits changements
uvx gac -o

# Générer un message de commit dans une langue spécifique
uvx gac -l fr

# Grouper les changements en commits logiquement liés
uvx gac -ag

# Mode interactif avec sortie détaillée pour des explications détaillées
uvx gac -iv

# Déboguer ce que voit l'IA
uvx gac --show-prompt

# Ignorer l'analyse de sécurité (utiliser avec prudence)
uvx gac --skip-secret-scan

# Ajouter signoff pour conformité DCO (Cherry Studio, noyau Linux, etc.)
uvx gac --signoff

Système de feedback interactif

Pas satisfait du résultat ? Vous avez plusieurs options :

# Relancer simple (pas de feedback)
r

# Éditer le message de commit
e

# Ou tapez simplement votre feedback directement !
rends-le plus court et concentre-toi sur l'amélioration des performances
utilise le format de commit conventionnel avec portée
explique les implications de sécurité

# Appuyez sur Entrée sur une entrée vide pour voir l'invite à nouveau

La fonction d'édition (e) vous permet d'affiner le message de commit :

  • Par défaut (TUI intégrée) : Édition multi-lignes avec bindings vi/emacs — corriger les fautes de frappe, ajuster la formulation, restructurer
  • Avec GAC_EDITOR : Ouvre votre éditeur préféré (code, vim, nano, etc.) — toute la puissance de l'éditeur, y compris rechercher/remplacer, macros, etc.

Les éditeurs GUI comme VS Code sont gérés automatiquement : gac insère --wait pour que le processus se bloque jusqu'à la fermeture de l'onglet de l'éditeur. Aucune configuration supplémentaire nécessaire.


Configuration

Exécutez uvx gac init pour configurer votre fournisseur de manière interactive, ou définissez les variables d'environnement :

Besoin de changer de fournisseurs ou de modèles plus tard sans toucher aux paramètres de langue ? Utilisez uvx gac model pour un flux simplifié qui saute les questions de langue.

Voir .gac.env.example pour toutes les options disponibles.

Vous voulez des messages de commit dans une autre langue ? Exécutez uvx gac language pour sélectionner parmi 25+ langues incluant Español, Français, 日本語 et plus.

Vous voulez personnaliser le style des messages de commit ? Voir docs/CUSTOM_SYSTEM_PROMPTS.md pour des conseils sur la récitation de prompts système personnalisés.


Obtenir de l'aide


⭐ Mettez-nous une étoile sur GitHub🐛 Signaler des problèmes📖 Documentation complète