1作者: 0xkaz大约 2 个月前原帖
# 展示 HN: Claude 自动提交 – 基于 AI 的 Git 提交信息生成 ## 背景 像许多开发者一样,我发现自己经常输入“fix”、“update”或“wip”,而不是有意义的提交信息。在计算出我每天在这上面花费约 10 分钟(每年 60 小时)后,我决定构建一个解决方案。 ## 功能介绍 Claude 自动提交分析暂存的 Git 更改,并使用 Claude 的 AI 生成上下文相关的提交信息。它理解代码结构和更改模式,以创建符合传统提交风格的信息。 *示例:* ```bash git add . npx claude-auto-commit # 输出: feat(auth): 添加 JWT 令牌验证中间件 - 实现受保护路由的令牌验证 - 为过期令牌添加错误处理 ``` ## 技术方法 v0.1.4 是从 Bash 完全重写为使用 Claude Code SDK 的 Node.js ES 模块。 *关键决策:* 1. *Claude Code SDK*: 更稳定的 API,OAuth 认证 2. *并行处理*: 差异分析 + 历史解析同时进行 3. *智能缓存*: 将 API 调用减少约 50% 4. *模板系统*: `{description}` 占位符以保持团队一致性 *核心逻辑:* ```javascript const [diffAnalysis, context] = await Promise.all([ analyzeDiff(gitDiff), getProjectContext() ]); const message = await claudeSDK.generateMessage( buildContextualPrompt(diffAnalysis, context) ); ``` ## 性能 - *冷启动*: ~1.5秒(包括认证) - *缓存*: ~0.8秒 - *内存*: 峰值 <50MB ## 我所学到的 *有效的方面:* - 文件类型分析在上下文方面优于原始差异 - 缓存类似更改显著改善用户体验 - 模板帮助团队而不显得僵化 *挑战:* - 大型差异(>500 行)需要总结 - 项目的提交风格差异很大 - 平衡 AI 创造力与传统标准 ## 限制 - 需要 Claude Pro/Team 订阅 - 最适合处理 <500 行的更改 - 基本模板系统(正在规划更智能的模式识别) ## 技术栈 - *运行时*: Node.js 18+ ES 模块 - *AI*: Claude Code SDK (OAuth) - *分发*: npm + curl 安装程序 - *配置*: JSON,带有合理的默认值 核心见解:将其视为上下文感知的总结,而不是模板填充。 ## 未来计划 - VS Code 扩展 - GitHub Actions 集成用于 PR 描述 - 团队分析(哪些风格与更好的评审相关) ## 尝试一下 ```bash npx claude-auto-commit ``` *GitHub*: [https://github.com/0xkaz/claude-auto-commit](https://github.com/0xkaz/claude-auto-commit) *网站*: [https://claude-auto-commit.0xkaz.com](https://claude-auto-commit.0xkaz.com) 欢迎反馈,特别是来自在提交一致性方面遇到困难的团队。免费且开源。 *需要 Claude 订阅,但正在探索可及性选项。*