博客 / 詳情

返回

AIM:用 AI 寫 Git 提交信息

AIM:用 AI 寫 Git 提交信息

前言

每次提交代碼都要想半天寫什麼?趕項目的時候隨手寫個"update"、"fix bug"就提交了?回頭看提交歷史,滿屏都是"修改文件"這種廢話?

AIM(AI-powered Git Intelligence Message) 就是為了解決這個問題而生的。它是個命令行工具,直接分析你的代碼改動,自動生成規範的提交信息。

安裝

 dotnet tool install --global huiyuanai709.aim

主要功能

🤖 AI 分析代碼改動

接入了 OpenAI API(也支持其他兼容接口),會:

  • 看你的 git diff 改了啥
  • 理解這次改動是幹什麼的
  • 生成符合規範的提交信息

⚡ 跑得快

  • 用 .NET 10.0 寫的,支持 AOT 編譯
  • 啓動快,佔內存少
  • 命令行用起來簡單

🎯 符合規範

生成的提交信息會遵循常見的最佳實踐:

  • 用祈使語氣:"Add feature" 不是 "Added feature"
  • 標題不超過 72 字符
  • 標題和正文之間空一行

⚙️ 可以定製

能改的地方挺多:

  • API 地址和模型(GPT-4、GPT-4o 等)
  • 提交信息長度
  • 要不要自動提交
  • diff 顯示方式

快速上手指南

安裝步驟

# 1. 克隆倉庫
git clone https://github.com/huiyuanai709/Aim.git
cd Aim

# 2. 構建項目
dotnet build

# 3. (可選)發佈為原生二進制文件
dotnet publish -c Release

配置 API 密鑰

先準備一個 OpenAI API key:

aim config --set apikey=YOUR_API_KEY

用其他兼容 OpenAI 接口的服務(比如 Azure OpenAI、國內的 AI 服務)也行,改一下地址:

aim config --set apiendpoint=https://your-custom-endpoint.com/v1

怎麼用

# 1. 改完代碼,暫存
git add .

# 2. 生成提交信息
aim commit

# 3. 看一眼沒問題就提交

就這樣。AIM 分析完代碼會給你一條提交信息,看着沒問題就確認。

更多用法

一步到位:

aim commit -a

改上次的提交:

aim commit --amend

自動提交不用確認:

aim config --set autocommit=true

實際效果

比如你這次改動:

  • 給登錄加了郵箱驗證
  • 修了密碼重置頁面的顯示問題
  • 更新了單元測試

自己寫可能是:

fix: 修復登錄相關問題

用 AIM 生成的:

Add email validation to user login module

- Implement email format validation on login form
- Fix password reset page display issue
- Update related unit tests for new validation logic

技術細節

.NET 10.0 + AOT 編譯

用了最新的 .NET 平台,支持 AOT 編譯:

  • 啓動快:不用 JIT 編譯
  • 佔內存少:不需要完整的運行時
  • 跨平台:Windows、Linux、macOS 都能用

依賴庫

  • OpenAI SDK (v2.7.0):官方 SDK
  • System.CommandLine (v2.0.0):微軟官方的命令行庫
  • Microsoft.Extensions.Configuration:配置管理

代碼結構

設計比較簡單:

  • 配置文件用標準 INI 格式
  • 命令行接口規範
  • 模塊化,好改

配置説明

配置文件在:

  • Windows%APPDATA%\aim\config.ini
  • Linux/Mac~/.config/aim/config.ini

示例:

[General]
ApiKey = sk-your-api-key-here
ApiEndpoint = https://api.openai.com/v1
Model = gpt-4o

[Behavior]
AutoCommit = false
AutoPush = false

[Rules]
MaxSubjectLength = 72
DiffNameOnly = false

常用配置

配置項 説明 建議
Model AI 模型 gpt-4oqwen-plus
AutoCommit 自動提交 保持 false,自己確認一下比較好
MaxSubjectLength 標題最大長度 72(Git 標準)
DiffNameOnly 只顯示文件名 false(完整 diff 生成的更準)

適合什麼場景

用起來不錯的場景

  1. 個人項目:快速生成規範的提交
  2. 小團隊:統一提交風格
  3. 開源項目:讓提交歷史看起來更專業

要注意的地方

  1. 敏感代碼:AI 要讀你的代碼,注意公司規定
  2. 沒網絡:要聯網調 API
  3. 大改動:改了特別多文件,可能要自己潤色一下

開源參與

這是個開源項目,歡迎參與:

  • 🐛 報 bug
  • 💡 提建議
  • 📝 寫文檔
  • 💻 提代碼

GitHub:https://github.com/huiyuanai709/Aim

最後

寫代碼已經夠累了,提交信息這種事交給工具就行。AIM 不是要替你思考,而是幫你把時間花在更值得做的事上。


項目作者:huiyuanai709
覺得有用的話,給個 Star ⭐

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.