🚀 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

Thông điệp commit được hỗ trợ bởi LLM, hiểu mã của bạn!

Tự động hóa commit của bạn! Thay thế git commit -m "..." bằng uvx gac để có thông điệp commit có ngữ cảnh, được định dạng tốt được tạo ra bởi các mô hình ngôn ngữ lớn!


Bạn Nhận Được Gì

Thông điệp thông minh, có ngữ cảnh giải thích tại sao đằng sau những thay đổi của bạn:

GAC generating a contextual commit message


Bắt Đầu Nhanh

uvx gac init   # Cấu hình nhà cung cấp, mô hình và ngôn ngữ của bạn
uvx gac  # Tạo và commit với LLM

Chỉ vậy thôi! Xem lại thông điệp đã tạo và xác nhận bằng y.


Tính Năng Chính

33+ Nhà Cung Cấp Hỗ Trợ

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

🧠 Phân Tích LLM Thông Minh

  • Hiểu ý định: Phân tích cấu trúc mã, logic và các mẫu để hiểu "tại sao" đằng sau những thay đổi của bạn, không chỉ những gì đã thay đổi
  • Nhận thức ngữ nghĩa: Nhận biết tái cấu trúc, sửa lỗi, tính năng và các thay đổibreaking để tạo thông điệp commit có ngữ cảnh phù hợp
  • Lọc thông minh: Ưu tiên các thay đổi có ý nghĩa trong khi bỏ qua các tệp được tạo, phụ thuộc và artifacts
  • Nhóm commit thông minh - Tự động nhóm các thay đổi liên quan thành nhiều commit logic với --group

📝 Nhiều Định Dạng Thông Điệp

  • Một dòng (-o flag): Thông điệp commit một dòng theo định dạng commit tiêu chuẩn
  • Tiêu chuẩn (mặc định): Tóm tắt với các gạch đầu dòng giải thích chi tiết triển khai
  • Chi tiết (-v flag): Giải thích toàn diện bao gồm động cơ, cách tiếp cận kỹ thuật và phân tích tác động
  • Quy tắc 50/72 (cờ --50-72): Áp dụng định dạng tin nhắn commit cổ điển để dễ đọc tối ưu trong git log và GitHub UI
  • DCO/Signoff (cờ --signoff): Thêm dòng Signed-off-by để tuân thủ Developer Certificate of Origin (bắt buộc bởi Cherry Studio, Linux kernel và các dự án khác)

🌍 Hỗ Trợ Đa Ngôn Ngữ

  • 25+ ngôn ngữ: Tạo thông điệp commit bằng tiếng Anh, tiếng Trung, tiếng Nhật, tiếng Hàn, tiếng Tây Ban Nha, tiếng Pháp, tiếng Đức và 18+ ngôn ngữ khác
  • Dịch linh hoạt: Chọn giữ tiền tố commit tiêu chuẩn bằng tiếng Anh để tương thích công cụ, hoặc dịch hoàn toàn chúng
  • Nhiều quy trình làm việc: Đặt ngôn ngữ mặc định với uvx gac language, hoặc sử dụng flag -l <language> để ghi đè một lần
  • Hỗ trợ chữ viết gốc: Hỗ trợ đầy đủ cho các chữ viết không phải Latin bao gồm CJK, Cyrillic, Thai và nhiều hơn nữa

💻 Trải Nghiệm Nhà Phát Triển

  • Phản hồi tương tác: Gõ r để reroll, e để chỉnh sửa (TUI tại chỗ mặc định, hoặc $GAC_EDITOR nếu đã đặt), hoặc gõ trực tiếp phản hồi của bạn như làm nó ngắn hơn hoặc tập trung vào sửa lỗi
  • Hỏi đáp tương tác: Sử dụng --interactive (-i) để trả lời các câu hỏi nhắm mục tiêu về các thay đổi của bạn để có thông điệp commit có nhiều ngữ cảnh hơn
  • Quy trình làm việc một lệnh: Quy trình làm việc hoàn chỉnh với các flag như uvx gac -ayp (stage tất cả, tự động xác nhận, push)
  • Tích hợp Git: Tôn các hook pre-commit và lefthook, chạy chúng trước các thao tác LLM tốn kém
  • MCP server: Chạy uvx gac serve để cung cấp công cụ commit cho AI agent thông qua Model Context Protocol

📊 Thống Kê Sử Dụng

uvx gac stats               # Tổng quan: tổng gac, chuỗi, đỉnh hàng ngày/hàng tuần, dự án và mô hình hàng đầu
uvx gac stats models        # Chi tiết theo mô hình: gac, token, độ trễ, tốc độ, biểu đồ độ trễ theo commit
uvx gac stats projects      # Chi tiết theo dự án: gac, commit, token, tệp trung bình mỗi gac trên tất cả repo
uvx gac stats recent        # Lịch sử gac gần đây: token, tốc độ, độ trễ, tệp mỗi gac (-n 20 cho thêm)
uvx gac stats reset         # Đặt lại tất cả thống kê (yêu cầu xác nhận)
uvx gac stats reset model <model-id>  # Chỉ đặt lại thống kê cho một mô hình cụ thể
  • Theo dõi các gac của bạn: Xem bạn đã thực hiện bao nhiêu commit với gac, chuỗi hiện tại, hoạt động đỉnh hàng ngày/hàng tuần, và các dự án hàng đầu
  • Theo dõi token: Tổng token prompt, output và suy luận theo ngày, tuần, dự án và mô hình — với cúp kỷ lục cho việc sử dụng token
  • Mô hình hàng đầu: Xem mô hình nào bạn sử dụng nhiều nhất và mỗi mô hình tiêu thụ bao nhiêu token
  • Ăn mừng điểm cao: 🏆 cúp khi bạn thiết lập kỷ lục hàng ngày, hàng tuần, token, hoặc chuỗi mới; 🥈 khi ngang bằng
  • Chọn tham gia khi cài đặt: uvx gac init hỏi bạn có muốn bật thống kê và giải thích chính xác những gì được lưu trữ
  • Từ chối bất cứ lúc nào: Đặt GAC_DISABLE_STATS=true (hoặc 1/yes/on) để vô hiệu hóa. Đặt thành false/0/no (hoặc bỏ đặt) giữ thống kê được bật
  • Ưu tiên quyền riêng tư: Lưu trữ cục bộ trong ~/.gac_stats.json. Chỉ số lượng, ngày tháng, tên dự án và tên mô hình — không có thông điệp commit, mã, hay dữ liệu cá nhân. Không thu thập dữ liệu từ xa

🛡️ Bảo Mật Tích Hợp

  • Phát hiện bí mật tự động: Quét các khóa API, mật khẩu và token trước khi commit
  • Bảo vệ tương tác: Gợi ý trước khi commit dữ liệu nhạy cảm tiềm tàng với các tùy chọn khắc phục rõ ràng
  • Lọc thông minh: Bỏ qua các tệp ví dụ, tệp mẫu và văn bản giữ chỗ để giảm các dương tính giả

Ví Dụ Sử Dụng

Quy Trình Cơ Bản

# Stage các thay đổi của bạn
git add .

# Tạo và commit với LLM
uvx gac

# Xem lại → y (commit) | n (hủy) | r (reroll) | e (chỉnh sửa) | hoặc gõ phản hồi

Lệnh Thông Dụng

LệnhMô t�
uvx gacTạo thông điệp commit
uvx gac -yTự động xác nhận (không cần xem lại)
uvx gac -aStage tất cả trước khi tạo thông điệp commit
uvx gac -SChọn tệp tương tác để stage
uvx gac -oThông điệp một dòng cho các thay đổi nhỏ
uvx gac -vĐịnh dạng chi tiết với Động cơ, Cách tiếp cận Kỹ thuật, và Phân tích Tác động
uvx gac -h "gợi ý"Thêm ngữ cảnh cho LLM (ví dụ, uvx gac -h "sửa lỗi")
uvx gac -sBao gồm phạm vi (ví dụ, feat(auth):)
uvx gac -iHỏi về các thay đổi để có ngữ cảnh tốt hơn
uvx gac -gNhóm các thay đổi thành nhiều commit logic
uvx gac -pCommit và push
uvx gac modelĐổi nhà cung cấp và mô hình AI
uvx gac statsXem thống kê sử dụng gac của bạn

Ví Dụ Người Dùng Nâng Cao

# Quy trình hoàn chỉnh trong một lệnh
# Xem thống kê commit của bạn
uvx gac stats

# Thống kê tất cả dự án
uvx gac stats projects

uvx gac -ayp -h "chuẩn bị phát hành"

# Giải thích chi tiết với phạm vi
uvx gac -v -s

# Thông điệp một dòng nhanh cho các thay đổi nhỏ
uvx gac -o

# Tạo thông điệp commit bằng một ngôn ngữ cụ thể
uvx gac -l vi

# Nhóm các thay đổi thành các commit logic liên quan
uvx gac -ag

# Chế độ tương tác với đầu ra chi tiết cho giải thích chi tiết
uvx gac -iv

# Gỡ lỗi xem LLM thấy gì
uvx gac --show-prompt

# Bỏ qua quét bảo mật (sử dụng cẩn thận)
uvx gac --skip-secret-scan

# Thêm signoff để tuân thủ DCO (Cherry Studio, Linux kernel, v.v.)
uvx gac --signoff

Hệ Thống Phản Hồi Tương Tác

Không hài lòng với kết quả? Bạn có một số tùy chọn:

# Reroll đơn giản (không có phản hồi)
r

# Chỉnh sửa thông điệp commit
e

# Hoặc chỉ gõ phản hồi của bạn trực tiếp!
làm ngắn hơn tập trung vào cải thiện hiệu suất
sử dụng định dạng commit tiêu chuẩn với phạm vi
giải thích các tác động bảo mật

# Nhấn Enter trên input trống để xem gợi ý lại

Tính năng chỉnh sửa (e) cho phép bạn tinh chỉnh thông điệp commit:

  • Mặc định (TUI tại chỗ): Chỉnh sửa đa dòng với phím tắt vi/emacs — sửa lỗi chính tả, điều chỉnh từ ngữ, tái cấu trúc
  • Với GAC_EDITOR: Mở trình soạn thảo ưa thích (code, vim, nano, v.v.) — toàn bộ sức mạnh trình soạn thảo bao gồm tìm/thay thế, macro, v.v.

Trình soạn thảo GUI như VS Code được xử lý tự động: gac chèn --wait để quy trình chặn cho đến khi bạn đóng tab trình soạn thảo. Không cần cấu hình thêm.


Cấu Hình

Chạy uvx gac init để cấu hình nhà cung cấp của bạn một cách tương tác, hoặc đặt các biến môi trường:

Cần thay đổi nhà cung cấp hoặc mô hình sau này mà không ảnh hưởng đến cài đặt ngôn ngữ? Sử dụng uvx gac model cho quy trình hợp lý bỏ qua các gợi ý ngôn ngữ.

Xem .gac.env.example cho tất cả các tùy chọn có sẵn.

Muốn thông điệp commit bằng ngôn ngữ khác? Chạy uvx gac language để chọn từ 25+ ngôn ngữ bao gồm Español, Français, 日本語 và nhiều hơn nữa.

Muốn tùy chỉnh kiểu thông điệp commit? Xem docs/CUSTOM_SYSTEM_PROMPTS.md để được hướng dẫn viết các gợi ý hệ thống tùy chỉnh.


Nhận Trợ Giúp


⭐ Star chúng tôi trên GitHub🐛 Báo cáo vấn đề📖 Tài liệu đầy đủ