🚀 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

Коммиты, созданные ИИ, которые понимают ваш код!

Автоматизируйте свои коммиты! Замените git commit -m "..." на uvx gac для получения контекстуальных, хорошо отформатированных сообщений коммитов, сгенерированных большими языковыми моделями!


Что вы получаете

Интеллектуальные, контекстуальные сообщения, которые объясняют почему ваших изменений:

GAC генерирует контекстуальное сообщение коммита


Быстрый старт

uvx gac init   # Настройте вашего провайдера, модель и язык
uvx gac  # Сгенерируйте и закоммитьте с помощью ИИ

Вот и всё! Проверьте сгенерированное сообщение и подтвердите с y.


Основные функции

33+ Поддерживаемые провайдеры

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

🧠 Умный анализ ИИ

  • Понимает намерение: Анализирует структуру кода, логику и паттерны для понимания "почему" за вашими изменениями, а не только что изменилось
  • Семантическая осведомлённость: Распознаёт рефакторинг, исправления ошибок, функции и критические изменения для генерации контекстуально подходящих сообщений
  • Умная фильтрация: Приоритизирует значимые изменения, игнорируя сгенерированные файлы, зависимости и артефакты
  • Умная группировка коммитов - Автоматически группирует связанные изменения в несколько логических коммитов с --group

📝 Множественные форматы сообщений

  • Однострочный (-o): Сообщение коммита в одну строку в формате conventional commit
  • Стандартный (по умолчанию): Резюме с маркерами, объясняющими детали реализации
  • Подробный (-v): исчерпывающие объяснения, включая мотивацию, технический подход и анализ влияния
  • Правило 50/72 (флаг --50-72): Принудительное использование классического формата сообщений коммита для оптимальной читаемости в git log и GitHub UI
  • DCO/Signoff (флаг --signoff): Добавляет строку Signed-off-by для соответствия Developer Certificate of Origin (требуется Cherry Studio, ядром Linux и другими проектами)

🌍 Многоязычная поддержка

  • 25+ языков: Генерируйте сообщения коммитов на английском, китайском, японском, корейском, испанском, французском, немецком и 18+ других языках
  • Гибкий перевод: Выберите сохранять префиксы conventional commit на английском для совместимости инструментов или полностью их переведите
  • Множественные рабочие процессы: Установите язык по умолчанию с uvx gac language или используйте флаг -l <language> для разового изменения
  • Поддержка родных скриптов: Полная поддержка не-латинских скриптов, включая CJK, кириллицу, тайский и другие

💻 Опыт разработчика

  • Интерактивная обратная связь: Введите r для перегенерации, e для редактирования (встроенная TUI по умолчанию, или $GAC_EDITOR если установлен), или напрямую введите ваш отзыв, например, "сделай короче" или "сосредоточься на исправлении ошибки"
  • Интерактивные вопросы: Используйте --interactive (-i) для ответа на целевые вопросы о ваших изменениях для более контекстуальных сообщений коммита
  • Рабочие процессы в одну команду: Полные рабочие процессы с флагами, такими как uvx gac -ayp (индексировать всё, автоподтверждение, отправить)
  • Интеграция с Git: Уважает хуки pre-commit и lefthook, запуская их перед дорогостоящими операциями ИИ
  • MCP-сервер: Запустите uvx gac serve для предоставления инструментов коммита ИИ-агентам через Model Context Protocol

📊 Статистика использования

uvx gac stats               # Обзор: общие gac-коммиты, серии, дневные/недельные пики, лучшие проекты и модели
uvx gac stats models        # Разбивка по моделям: gac-коммиты, токены, задержка, скорость, графики задержки на коммит
uvx gac stats projects      # Разбивка по проектам: gac-коммиты, коммиты, токены, среднее файлов на gac во всех репозиториях
uvx gac stats recent        # Недавняя история gac: токены, скорость, задержка, файлы на gac (-n 20 для большего количества)
uvx gac stats reset         # Сбросить всю статистику (требует подтверждения)
uvx gac stats reset model <model-id>  # Сбросить статистику только для конкретной модели
  • Отслеживайте свои gac-коммиты: Узнайте, сколько коммитов вы сделали с помощью gac, вашу текущую серию, пиковую ежедневную/еженедельную активность и лучшие проекты
  • Отслеживание токенов: Общее количество токенов промпта и завершения по дням, неделям, проектам и моделям — с трофеями за рекорды использования токенов
  • Лучшие модели: Узнайте, какие модели вы используете чаще всего и сколько токенов потребляет каждая
  • Празднование рекордов: 🏆 трофеи при установке новых ежедневных, еженедельных рекордов, рекордов токенов или серии; 🥈 за их повторение
  • Opt-in при настройке: uvx gac init спрашивает, хотите ли вы включить статистику, и объясняет, что именно хранится
  • Opt-out в любое время: Установите GAC_DISABLE_STATS=true (или 1/yes/on) для отключения. Установка false/0/no (или снятие) оставляет статистику включённой
  • Конфиденциальность прежде всего: Хранится локально в ~/.gac_stats.json. Только счётчики, даты, имена проектов и имена моделей — нет сообщений коммитов, кода или личных данных. Без телеметрии

🛡️ Встроенная безопасность

  • Автоматическое обнаружение секретов: Сканирует наличие ключей API, паролей и токенов перед коммитом
  • Интерактивная защита: Запрашивает подтверждение перед коммитом потенциально чувствительных данных с чёткими опциями исправления
  • Умная фильтрация: Игнорирует примеры файлов, шаблоны и текст-заполнители для уменьшения ложных срабатываний

Примеры использования

Базовый рабочий процесс

# Индексируйте ваши изменения
git add .

# Сгенерируйте и закоммитьте с помощью ИИ
uvx gac

# Проверьте → y (коммит) | n (отмена) | r (перегенерировать) | e (редактировать) | или введите отзыв

Распространённые команды

КомандаОписание
uvx gacСгенерировать сообщение коммита
uvx gac -yАвтоподтверждение (проверка не требуется)
uvx gac -aИндексировать всё перед генерацией сообщения коммита
uvx gac -SИнтерактивно выбрать файлы для индексации
uvx gac -oОднострочное сообщение для незначительных изменений
uvx gac -vПодробный формат с мотивацией, техническим подходом и анализом влияния
uvx gac -h "подсказка"Добавить контекст для ИИ (например, uvx gac -h "исправление ошибки")
uvx gac -sВключить область (например, feat(auth):)
uvx gac -iЗадавать вопросы об изменениях для лучшего контекста
uvx gac -gГруппировать изменения в несколько логических коммитов
uvx gac -pЗакоммитить и отправить
uvx gac modelИзменить поставщика и модель ИИ
uvx gac statsПросмотреть статистику использования gac

Примеры для опытных пользователей

# Полный рабочий процесс в одной команде
# Просмотреть статистику ваших коммитов
uvx gac stats

# Статистика всех проектов
uvx gac stats projects

uvx gac -ayp -h "подготовка релиза"

# Подробное объяснение с областью
uvx gac -v -s

# Быстрое однострочное сообщение для небольших изменений
uvx gac -o

# Сгенерировать сообщение коммита на определённом языке
uvx gac -l ru

# Сгруппировать изменения в логически связанные коммиты
uvx gac -ag

# Интерактивный режим с подробным выводом для детальных объяснений
uvx gac -iv

# Отладить то, что видит ИИ
uvx gac --show-prompt

# Пропустить сканирование безопасности (используйте осторожно)
uvx gac --skip-secret-scan

# Добавить signoff для соответствия DCO (Cherry Studio, ядро Linux и т.д.)
uvx gac --signoff

Система интерактивной обратной связи

Не довольны результатом? У вас есть несколько опций:

# Простая перегенерация (без отзыва)
r

# Редактировать сообщение коммита
e

# Или просто введите ваш отзыв напрямую!
сделай короче и сосредоточься на улучшении производительности
используй формат conventional commit с областью
объясни последствия для безопасности

# Нажмите Enter на пустом вводе, чтобы увидеть приглашение снова

Функция редактирования (e) позволяет доработать сообщение коммита:

  • По умолчанию (встроенная TUI): Многострочное редактирование с горячими клавишами vi/emacs — исправлять опечатки, корректировать формулировки, реструктурировать
  • С GAC_EDITOR: Открывает предпочитаемый редактор (code, vim, nano и т.д.) — все возможности редактора, включая поиск/замена, макросы и т.д.

GUI-редакторы, такие как VS Code, обрабатываются автоматически: gac вставляет --wait, чтобы процесс блокировался до закрытия вкладки редактора. Дополнительная настройка не требуется.


Конфигурация

Запустите uvx gac init для интерактивной настройки вашего провайдера или установите переменные окружения:

Нужно изменить провайдеров или модели позже, не затрагивая настройки языка? Используйте uvx gac model для упрощённого рабочего процесса, который пропускает запросы языка.

Смотрите .gac.env.example для всех доступных опций.

Хотите сообщения коммитов на другом языке? Запустите uvx gac language для выбора из 25+ языков, включая Español, Français, 日本語 и другие.

Хотите настроить стиль сообщений коммитов? См. docs/CUSTOM_SYSTEM_PROMPTS.md для руководства по написанию пользовательских системных промптов.


Получение помощи

  • Полная документация: USAGE.md - Полное справочное руководство по CLI
  • MCP-сервер: docs/MCP.md - Использование GAC в качестве MCP-сервера для ИИ-агентов
  • Claude Code OAuth: docs/CLAUDE_CODE.md - Настройка и аутентификация Claude Code
  • ChatGPT OAuth: docs/CHATGPT_OAUTH.md - Настройка и аутентификация ChatGPT OAuth
  • Пользовательские промпты: CUSTOM_SYSTEM_PROMPTS.md - Настройка стиля сообщений коммитов
  • Статистика использования: См. uvx gac stats --help или полную документацию
  • Устранение неполадок: TROUBLESHOOTING.md - Распространённые проблемы и решения
  • Вклад в проект: CONTRIBUTING.md - Настройка среды разработки и руководства

⭐ Поставьте нам звезду на GitHub🐛 Сообщить о проблемах📖 Полная документация