Skip to content

Latest commit

 

History

History
258 lines (177 loc) · 18.4 KB

File metadata and controls

258 lines (177 loc) · 18.4 KB

🚀 Git Auto Commit (gac)

PyPI version 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 "..." на gac для получения контекстуальных, хорошо отформатированных сообщений коммитов, сгенерированных большими языковыми моделями!


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

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

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


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

Использование gac без установки

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

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

Установка и использование gac

uv tool install gac
gac init
gac

Обновление установленного gac

uv tool upgrade gac

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

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

  • AnthropicAzure OpenAICerebrasChutes.aiClaude Code (OAuth)
  • DeepSeekFireworksGeminiGroqKimi for CodingLM Studio
  • MiniMax.ioMistral AIMoonshot AIOllamaOpenAIOpenRouter
  • Qwen Cloud (CN & INTL)ReplicateStreamlakeSynthetic.newTogether AI
  • Wafer.aiZ.AIZ.AI CodingCustom 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+ языков: Генерируйте сообщения коммитов на английском, китайском, японском, корейском, испанском, французском, немецком и более 20 других языках
  • Гибкий перевод: Выберите сохранять префиксы conventional commit на английском для совместимости инструментов или полностью их переведите
  • Множественные рабочие процессы: Установите язык по умолчанию с gac language или используйте флаг -l <language> для разового изменения
  • Поддержка родных скриптов: Полная поддержка не-латинских скриптов, включая CJK, кириллицу, тайский и другие

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Статистика только для текущего проекта
gac stats project

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

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

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

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

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

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

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

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

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

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

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

# Редактировать на месте с богатым редактированием в терминале
e
# Использует prompt_toolkit для многострочного редактирования с горячими клавишами vi/emacs
# Нажмите Esc+Enter или Ctrl+S для отправки, Ctrl+C для отмены

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

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

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

  • Редактировать естественно: Многострочное редактирование с привычными горячими клавишами vi/emacs
  • Вносить быстрые исправления: Исправлять опечатки, корректировать формулировки или улучшать форматирование
  • Добавлять детали: Включать информацию, которую ИИ мог упустить
  • Реструктурировать: Реорганизовывать маркеры или изменять структуру сообщения

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

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

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

# Пример конфигурации
GAC_MODEL=anthropic:your-model-name
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here

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

Хотите сообщения коммитов на другом языке? Запустите 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
  • Пользовательские промпты: CUSTOM_SYSTEM_PROMPTS.md - Настройка стиля сообщений коммитов
  • Статистика использования: См. gac stats --help или полную документацию
  • Устранение неполадок: TROUBLESHOOTING.md - Распространённые проблемы и решения
  • Вклад в проект: CONTRIBUTING.md - Настройка среды разработки и руководства