智能生成
基于代码变更自动生成规范的提交消息
Oh My Commit 是一款基于 AI 的 Git 提交助手,它能帮助你:
请阅读:AI Commit Provider 实现指南 ,核心就是基于我们预设的 Context,实现对应的接口,并参考我们 provider 的打包配置到指定目录即可。
项目采用 MIT + Commons Clause 协议开源,这意味着:
本项目的主要链接:
合作、社群与答疑:
目前正在开发的功能:
一些设想:
如果我们在 commit 这个事情上打穿,把用户散落在各个 IDE、项目里的 commit 都贯穿起来,这个工具可以进化成?
程序员的编程画像
团队的协作仪表盘
智能输入法
# 自动根据上下文推荐提交信息
$ git commit -m "
> 推荐 1: fix(login): resolve undefined user object issue
> 推荐 2: feat(auth): add token refresh mechanism
> 推荐 3: style(ui): update login form layout
"
作为 2024 年的收官之作,Oh My Commi 虽小,却承载了我对 AI 时代开发工具的诸多思考。
这一个月的开发经历让我深深体会到:工具的价值不仅在于解决问题,更在于激发可能。
通过跟 AI 的密切协作,我看到了未来开发方式的一种可能性: 让 AI 处理重复性的工作,让开发者专注于更有创意的部分。
这不仅仅是一个工具的诞生,更是对未来开发方式的一次探索。如果你也对此感兴趣,欢迎一起来玩:
echo "LLM YYDS \!"
1% 的部分属于我,剩余 99% 属于 AI。
起初名字叫 Yet Another AI Commit,后来叫 YAAC(雅刻),最后它的名字叫 Oh My Commit。
说实话,如果不是有人和我提,我甚至都没能意识到自己其实是也需要一款 AI commit 工具的,可能是因为我长期独立开发,不太需要和别人合作,所以没能意识到规范自己 commit 的重要性。
从这个角度出发,人确实还是需要”多在企业里呆着好“,才能实打实地发现企业的痛点,也就是”真需求“,从而解决问题,从而”换取报酬”,至于是否需要打着一个”创业“的名号,除非要”融资“,否则也没那么重要,甚至也无那么必要。
但作为一个有代码洁癖的程序员,我自然也对混乱的代码提交信息深恶痛绝:
# 真实项目中的提交记录
git log --oneline
a123456 update
b234567 fix bug
c345678 修改了一下
d456789 改了改
每次看到这样的提交历史,总会想 - 身为程序员,写出规范、专业的提交信息难道不是基本素养吗?
然而现实是:
而且就像垃圾分类推了这么多年还是分不清干湿,程序员也往往分不清 feat/fix/perf/... 啊……
我有时候为了尽可能记录足够完备的历史,commit 的频率非常高,以至于都不知道怎么 commit 才好,最后就 git add . && git commit -m "."
…… (狗头)
* 2c8c412 - . (12 days ago) <markshawn2020>
* db43470 - . (12 days ago) <markshawn2020>
* 01e0a26 - . (12 days ago) <markshawn2020>
* e30cd98 - . (12 days ago) <markshawn2020>
* 10da285 - . (12 days ago) <markshawn2020>
* 83903eb - :sparkles: better tsconfig path aliaas (12 days ago) <markshawn2020>
“懒”真地是人类进步的原动力(不是)。
虽然市面上已经有一些 AI Commit 工具,比如 130 star 的 mefengl/vscode-i-dont-care-about-commit-message: Yet another AI git commit plugin, but without the need for manual confirmation.(下文代称 I Dont Care
。
我觉得他做的很不错,使用了 vscode 的原生通知,还是挺优雅的,但有几个缺点:
由于写 UIUX 这个是比较烦的,但是写 prompt 是比较简单的,所以我就想要不我来封装一个框架,定义一套 ai commit 的工作流,然后用户只需关心最核心的 prompt、data 等即可?
于是,一款产品就此诞生了。