爱意满满的作品展示区。
yvluwang

一个基于 Git 与大语言模型(LLM)的 CLI 工具,自动分析 git diff --staged 内容,生成高质量的 Commit Message 的工具

  •  
  •   yvluwang · 5h 2m ago · 377 views

    项目地址: https://github.com/851235550/gita

    为什么有这个项目: 我一般开发都在 vscode 中,然后使用 Copilot + Deepseek , 但是每次提交代码都得想 commit msg 如何写。之前安装过 千问 的 vscode 插件,一个插件 200 多兆 大小,而我只用来生成 commit msg 感觉不划算。 所以自己写了一个编译完才不到 7 兆的小工具。效果也感觉还不错。

    PS: 所有代码都是 AI 写的,我只是提供了下 /docs 目录下的需求和 AI Agent 执行规则。(其实连 /docs 下的文档都是我先描述一个初步想法,然后和 AI 探讨后,让他整理的结果

    项目效果图: 效果图

    项目优点

    • ✅ 仅 ~6.5 兆大小

    • ✅ 不在代码中硬编码密钥 - API Key 完全通过环境变量读取( GITA_DEEPSEEK_API_KEY 等

    • ✅ 不持久化到磁盘 - 密钥仅存于运行时内存,配置文件明确禁止写入 API Key

    • ✅ 三级优先级机制(按优先顺序):

      • 命令行参数 --api-key (临时,不落盘)
      • 环境变量(由 api_key_env 指定)
      • 配置文件中的 api_key_env 指向具体的环境变量名
    • ✅ 仅依赖 gopkg.in/yaml.v3 v3.0.1 (成熟稳定的 YAML 解析库)

    • ✅ 没有多层依赖链,降低了供应链风险

    • ✅ go.mod 和 go.sum 完整且一致

    • ✅ Git diff 数据基于本地 Git 命令执行,不接受不可信输入

    • ✅ JSON 响应完整校验,异常处理覆盖全面

    • ✅ 超大 diff (≥15000 行)时强制用户确认,防止无意中发送大量数据

    • ✅ 完整的单元测试和 E2E 测试覆盖

    9 replies    2026-07-09 16:23:34 +08:00
    hxsf
        1
    hxsf  
       4h 46m ago
    copilot+deepseek 了,为什么不直接让它写。甚至能帮你细粒度分批提交。
    yvluwang
        2
    yvluwang  
    OP
       4h 41m ago
    @hxsf 因为懒的每次都打字告诉他,只想无脑执行个命令
    anghunk
        3
    anghunk  
       4h 40m ago
    我是直接把 git commit 的生成格式和规范抽离成 skills
    一个命令就能生成
    yvluwang
        4
    yvluwang  
    OP
       4h 39m ago
    @anghunk 也很赞!
    yvluwang
        5
    yvluwang  
    OP
       3h 8m ago
    @anghunk 你这个方法很不错啊,学到了,我也搞一下。😌
    terryso
        6
    terryso  
       2h 48m ago
    我用 claude code, 我只要输入: 提交代码, 它自己就默认做了类似你的这个工具的这些事情
    lululau
        7
    lululau  
       2h 43m ago
    @yvluwang #4 并不是「也」,而是:这是目前的最佳实践。我也基于 magit 和 neogit 写过同样功能的插件,但是现在已经都没用了;现在代码都是在 coding agent 里写的,所以 skill 是唯一解
    yvluwang
        8
    yvluwang  
    OP
       2h 38m ago
    @lululau skill 我试了下,好像还是有点弊端的,比如如果要想调整 ai 给出的 commit msg ,需要不断的在对话框中进行交互?

    如果工具的话可以直接进 vi 来调整。
    yvluwang
        9
    yvluwang  
    OP
       2h 36m ago
    @terryso 用不起😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3256 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 11:00 · PVG 19:00 · LAX 04:00 · JFK 07:00
    ♥ Do have faith in what you're doing.