诗怡一昂 發表於 2025-12-2 20:26:00

AIM:用 AI 写 Git 提交信息

<h1 id="aim用-ai-写-git-提交信息">AIM:用 AI 写 Git 提交信息</h1>
<h2 id="前言">前言</h2>
<p>每次提交代码都要想半天写什么?赶项目的时候随手写个"update"、"fix bug"就提交了?回头看提交历史,满屏都是"修改文件"这种废话?</p>
<p><strong>AIM(AI-powered Git Intelligence Message)</strong> 就是为了解决这个问题而生的。它是个命令行工具,直接分析你的代码改动,自动生成规范的提交信息。</p>
<h2 id="安装">安装</h2>
<pre><code> dotnet tool install --global huiyuanai709.aim
</code></pre>
<h2 id="主要功能">主要功能</h2>
<h3 id="-ai-分析代码改动">🤖 AI 分析代码改动</h3>
<p>接入了 OpenAI API(也支持其他兼容接口),会:</p>
<ul>
<li>看你的 <code>git diff</code> 改了啥</li>
<li>理解这次改动是干什么的</li>
<li>生成符合规范的提交信息</li>
</ul>
<h3 id="-跑得快">⚡ 跑得快</h3>
<ul>
<li>用 .NET 10.0 写的,支持 AOT 编译</li>
<li>启动快,占内存少</li>
<li>命令行用起来简单</li>
</ul>
<h3 id="-符合规范">🎯 符合规范</h3>
<p>生成的提交信息会遵循常见的最佳实践:</p>
<ul>
<li>用祈使语气:"Add feature" 不是 "Added feature"</li>
<li>标题不超过 72 字符</li>
<li>标题和正文之间空一行</li>
</ul>
<h3 id="️-可以定制">⚙️ 可以定制</h3>
<p>能改的地方挺多:</p>
<ul>
<li>API 地址和模型(GPT-4、GPT-4o 等)</li>
<li>提交信息长度</li>
<li>要不要自动提交</li>
<li>diff 显示方式</li>
</ul>
<h2 id="快速上手指南">快速上手指南</h2>
<h3 id="安装步骤">安装步骤</h3>
<pre><code class="language-bash"># 1. 克隆仓库
git clone https://github.com/huiyuanai709/Aim.git
cd Aim

# 2. 构建项目
dotnet build

# 3. (可选)发布为原生二进制文件
dotnet publish -c Release
</code></pre>
<h3 id="配置-api-密钥">配置 API 密钥</h3>
<p>先准备一个 OpenAI API key:</p>
<pre><code class="language-bash">aim config --set apikey=YOUR_API_KEY
</code></pre>
<p>用其他兼容 OpenAI 接口的服务(比如 Azure OpenAI、国内的 AI 服务)也行,改一下地址:</p>
<pre><code class="language-bash">aim config --set apiendpoint=https://your-custom-endpoint.com/v1
</code></pre>
<h3 id="怎么用">怎么用</h3>
<pre><code class="language-bash"># 1. 改完代码,暂存
git add .

# 2. 生成提交信息
aim commit

# 3. 看一眼没问题就提交
</code></pre>
<p>就这样。AIM 分析完代码会给你一条提交信息,看着没问题就确认。</p>
<h3 id="更多用法">更多用法</h3>
<p><strong>一步到位:</strong></p>
<pre><code class="language-bash">aim commit -a
</code></pre>
<p><strong>改上次的提交:</strong></p>
<pre><code class="language-bash">aim commit --amend
</code></pre>
<p><strong>自动提交不用确认:</strong></p>
<pre><code class="language-bash">aim config --set autocommit=true
</code></pre>
<h2 id="实际效果">实际效果</h2>
<p>比如你这次改动:</p>
<ul>
<li>给登录加了邮箱验证</li>
<li>修了密码重置页面的显示问题</li>
<li>更新了单元测试</li>
</ul>
<p>自己写可能是:</p>
<pre><code>fix: 修复登录相关问题
</code></pre>
<p>用 AIM 生成的:</p>
<pre><code>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

</code></pre>
<h2 id="技术细节">技术细节</h2>
<h3 id="net-100--aot-编译">.NET 10.0 + AOT 编译</h3>
<p>用了最新的 .NET 平台,支持 AOT 编译:</p>
<ul>
<li>启动快:不用 JIT 编译</li>
<li>占内存少:不需要完整的运行时</li>
<li>跨平台:Windows、Linux、macOS 都能用</li>
</ul>
<h3 id="依赖库">依赖库</h3>
<ul>
<li><strong>OpenAI SDK (v2.7.0)</strong>:官方 SDK</li>
<li><strong>System.CommandLine (v2.0.0)</strong>:微软官方的命令行库</li>
<li><strong>Microsoft.Extensions.Configuration</strong>:配置管理</li>
</ul>
<h3 id="代码结构">代码结构</h3>
<p>设计比较简单:</p>
<ul>
<li>配置文件用标准 INI 格式</li>
<li>命令行接口规范</li>
<li>模块化,好改</li>
</ul>
<h2 id="配置说明">配置说明</h2>
<p>配置文件在:</p>
<ul>
<li><strong>Windows</strong>:<code>%APPDATA%\aim\config.ini</code></li>
<li><strong>Linux/Mac</strong>:<code>~/.config/aim/config.ini</code></li>
</ul>
<p>示例:</p>
<pre><code class="language-ini">
ApiKey = sk-your-api-key-here
ApiEndpoint = https://api.openai.com/v1
Model = gpt-4o


AutoCommit = false
AutoPush = false


MaxSubjectLength = 72
DiffNameOnly = false
</code></pre>
<h3 id="常用配置">常用配置</h3>
<table>
<thead>
<tr>
<th>配置项</th>
<th>说明</th>
<th>建议</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Model</code></td>
<td>AI 模型</td>
<td><code>gpt-4o</code> 或 <code>qwen-plus</code></td>
</tr>
<tr>
<td><code>AutoCommit</code></td>
<td>自动提交</td>
<td>保持 <code>false</code>,自己确认一下比较好</td>
</tr>
<tr>
<td><code>MaxSubjectLength</code></td>
<td>标题最大长度</td>
<td><code>72</code>(Git 标准)</td>
</tr>
<tr>
<td><code>DiffNameOnly</code></td>
<td>只显示文件名</td>
<td><code>false</code>(完整 diff 生成的更准)</td>
</tr>
</tbody>
</table>
<h2 id="适合什么场景">适合什么场景</h2>
<h3 id="用起来不错的场景">用起来不错的场景</h3>
<ol>
<li><strong>个人项目</strong>:快速生成规范的提交</li>
<li><strong>小团队</strong>:统一提交风格</li>
<li><strong>开源项目</strong>:让提交历史看起来更专业</li>
</ol>
<h3 id="要注意的地方">要注意的地方</h3>
<ol>
<li><strong>敏感代码</strong>:AI 要读你的代码,注意公司规定</li>
<li><strong>没网络</strong>:要联网调 API</li>
<li><strong>大改动</strong>:改了特别多文件,可能要自己润色一下</li>
</ol>
<h2 id="开源参与">开源参与</h2>
<p>这是个开源项目,欢迎参与:</p>
<ul>
<li>🐛 报 bug</li>
<li>💡 提建议</li>
<li>📝 写文档</li>
<li>💻 提代码</li>
</ul>
<p>GitHub:https://github.com/huiyuanai709/Aim</p>
<h2 id="最后">最后</h2>
<p>写代码已经够累了,提交信息这种事交给工具就行。AIM 不是要替你思考,而是帮你把时间花在更值得做的事上。</p>
<hr>
<p>项目作者:huiyuanai709<br>
觉得有用的话,给个 Star ⭐</p><br><br>
来源:https://www.cnblogs.com/huiyuanai709/p/19299235/aim
頁: [1]
查看完整版本: AIM:用 AI 写 Git 提交信息