-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
40 lines (38 loc) · 28.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Oh My Commit</title>
<meta name="description" content="Your AI-Powered Git Commit Assistant - 让 Git 提交变得优雅而智能">
<meta name="generator" content="VitePress v1.5.0">
<link rel="preload stylesheet" href="/assets/style.CKeg2H8S.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.BxAsn5Lu.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.CnmVtZlz.js">
<link rel="modulepreload" href="/assets/chunks/framework.D5XSuxOt.js">
<link rel="modulepreload" href="/assets/index.md.zJrarm8Z.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-0b84fc2e><!--[--><!--]--><!--[--><span tabindex="-1" data-v-aec96d29></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-aec96d29> Skip to content </a><!--]--><!----><header class="VPNav" data-v-0b84fc2e data-v-eb305922><div class="VPNavBar" data-v-eb305922 data-v-0c2161f1><div class="wrapper" data-v-0c2161f1><div class="container" data-v-0c2161f1><div class="title" data-v-0c2161f1><div class="VPNavBarTitle" data-v-0c2161f1 data-v-78ae5f4d><a class="title" href="/" data-v-78ae5f4d><!--[--><!--]--><!--[--><img class="VPImage logo" src="/oh-my-commit_256.logo.png" alt data-v-ff68edaf><!--]--><span data-v-78ae5f4d>Oh My Commit</span><!--[--><!--]--></a></div></div><div class="content" data-v-0c2161f1><div class="content-body" data-v-0c2161f1><!--[--><!--]--><div class="VPNavBarSearch search" data-v-0c2161f1><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-0c2161f1 data-v-18af0c15><span id="main-nav-aria-label" class="visually-hidden" data-v-18af0c15> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/product/prd.html" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>产品</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/development/todo.html" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>开发</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/changelog/" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>更新日志</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/coming-soon.html" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>即将推出</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/oh-my-commit/oh-my-commit" target="_blank" rel="noreferrer" tabindex="0" data-v-18af0c15 data-v-4db6f57a><!--[--><span data-v-4db6f57a>GitHub</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-0c2161f1 data-v-00d02b2f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-00d02b2f data-v-f9c196d1 data-v-7538fff9><span class="check" data-v-7538fff9><span class="icon" data-v-7538fff9><!--[--><span class="vpi-sun sun" data-v-f9c196d1></span><span class="vpi-moon moon" data-v-f9c196d1></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-0c2161f1 data-v-bffef1f2 data-v-cac2df1e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/oh-my-commit/oh-my-commit" aria-label="github" target="_blank" rel="noopener" data-v-cac2df1e data-v-9ca86139><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-0c2161f1 data-v-45534242 data-v-b33a47a7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b33a47a7><span class="vpi-more-horizontal icon" data-v-b33a47a7></span></button><div class="menu" data-v-b33a47a7><div class="VPMenu" data-v-b33a47a7 data-v-86e84ecf><!----><!--[--><!--[--><!----><div class="group" data-v-45534242><div class="item appearance" data-v-45534242><p class="label" data-v-45534242>Appearance</p><div class="appearance-action" data-v-45534242><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-45534242 data-v-f9c196d1 data-v-7538fff9><span class="check" data-v-7538fff9><span class="icon" data-v-7538fff9><!--[--><span class="vpi-sun sun" data-v-f9c196d1></span><span class="vpi-moon moon" data-v-f9c196d1></span><!--]--></span></span></button></div></div></div><div class="group" data-v-45534242><div class="item social-links" data-v-45534242><div class="VPSocialLinks social-links-list" data-v-45534242 data-v-cac2df1e><!--[--><a class="VPSocialLink no-icon" href="https://github.com/oh-my-commit/oh-my-commit" aria-label="github" target="_blank" rel="noopener" data-v-cac2df1e data-v-9ca86139><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-0c2161f1 data-v-ef70c369><span class="container" data-v-ef70c369><span class="top" data-v-ef70c369></span><span class="middle" data-v-ef70c369></span><span class="bottom" data-v-ef70c369></span></span></button></div></div></div></div><div class="divider" data-v-0c2161f1><div class="divider-line" data-v-0c2161f1></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-0b84fc2e data-v-72bc79f2><div class="VPHome" data-v-72bc79f2 data-v-f814ec89><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-f814ec89 data-v-f9d36ada><div class="container" data-v-f9d36ada><div class="main" data-v-f9d36ada><!--[--><!--]--><!--[--><h1 class="name" data-v-f9d36ada><span class="clip" data-v-f9d36ada>Oh My Commit</span></h1><p class="text" data-v-f9d36ada>让 Git 提交优雅而智能</p><p class="tagline" data-v-f9d36ada>一款基于 AI 的 Git 提交助手</p><!--]--><!--[--><!--]--><div class="actions" data-v-f9d36ada><!--[--><div class="action" data-v-f9d36ada><a class="VPButton medium brand" href="/guide/getting-started.html" data-v-f9d36ada data-v-99abf369>快速开始</a></div><div class="action" data-v-f9d36ada><a class="VPButton medium alt" href="https://github.com/oh-my-commit/oh-my-commit" target="_blank" rel="noreferrer" data-v-f9d36ada data-v-99abf369>在 GitHub 上查看</a></div><!--]--></div><!--[--><!--]--></div><div class="image" data-v-f9d36ada><div class="image-container" data-v-f9d36ada><div class="image-bg" data-v-f9d36ada></div><!--[--><!--[--><img class="VPImage image-src" src="/oh-my-commit_256.logo.png" alt="Oh My Commit" data-v-ff68edaf><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-f814ec89 data-v-d8465b2f><div class="container" data-v-d8465b2f><div class="items" data-v-d8465b2f><!--[--><div class="grid-4 item" data-v-d8465b2f><div class="VPLink no-icon VPFeature" data-v-d8465b2f data-v-6d1cd7b0><!--[--><article class="box" data-v-6d1cd7b0><div class="icon" data-v-6d1cd7b0>🤖</div><h2 class="title" data-v-6d1cd7b0>智能生成</h2><p class="details" data-v-6d1cd7b0>基于代码变更自动生成规范的提交消息</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-d8465b2f><div class="VPLink no-icon VPFeature" data-v-d8465b2f data-v-6d1cd7b0><!--[--><article class="box" data-v-6d1cd7b0><div class="icon" data-v-6d1cd7b0>🎨</div><h2 class="title" data-v-6d1cd7b0>优雅交互</h2><p class="details" data-v-6d1cd7b0>提供多种交互模式,满足不同场景需求</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-d8465b2f><div class="VPLink no-icon VPFeature" data-v-d8465b2f data-v-6d1cd7b0><!--[--><article class="box" data-v-6d1cd7b0><div class="icon" data-v-6d1cd7b0>🔍</div><h2 class="title" data-v-6d1cd7b0>深度分析</h2><p class="details" data-v-6d1cd7b0>理解代码上下文,生成准确的变更描述</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-d8465b2f><div class="VPLink no-icon VPFeature" data-v-d8465b2f data-v-6d1cd7b0><!--[--><article class="box" data-v-6d1cd7b0><div class="icon" data-v-6d1cd7b0>🤝</div><h2 class="title" data-v-6d1cd7b0>团队协作</h2><p class="details" data-v-6d1cd7b0>统一团队提交风格,提高协作效率</p><!----></article><!--]--></div></div><!--]--></div></div></div><!--[--><!--]--><div class="vp-doc container" style="" data-v-f814ec89 data-v-973427ff><!--[--><div style="position:relative;" data-v-f814ec89><div><br><h2 id="为什么选择-oh-my-commit" tabindex="-1">为什么选择 Oh My Commit? <a class="header-anchor" href="#为什么选择-oh-my-commit" aria-label="Permalink to "为什么选择 Oh My Commit?""></a></h2><p>Oh My Commit 是一款基于 AI 的 Git 提交助手,它能帮助你:</p><ul><li>🤖 <strong>智能生成</strong>:基于代码变更自动生成规范的提交消息</li><li>🎨 <strong>优雅交互</strong>:提供多种交互模式,满足不同场景需求</li><li>🔍 <strong>深度分析</strong>:理解代码上下文,生成准确的变更描述</li><li>🤝 <strong>团队协作</strong>:统一团队提交风格,提高协作效率</li></ul><h2 id="如何定制您自己的-ai-commit-实现" tabindex="-1">如何定制您自己的 AI Commit 实现? <a class="header-anchor" href="#如何定制您自己的-ai-commit-实现" aria-label="Permalink to "如何定制您自己的 AI Commit 实现?""></a></h2><p>请阅读:<a href="/guide/provider-docs.html">AI Commit Provider 实现指南</a> ,核心就是基于我们预设的 Context,实现对应的接口,并参考我们 provider 的打包配置到指定目录即可。</p><h2 id="文档、社区、开源、商业化与-roadmap" tabindex="-1">文档、社区、开源、商业化与 Roadmap <a class="header-anchor" href="#文档、社区、开源、商业化与-roadmap" aria-label="Permalink to "文档、社区、开源、商业化与 Roadmap""></a></h2><p>项目采用 MIT + Commons Clause 协议开源,这意味着:</p><ul><li>✅ 个人和团队可以免费使用</li><li>✅ 可以自由修改和分发</li><li>❌ 不能直接商业化</li></ul><p>本项目的主要链接:</p><ul><li>Github: <a href="https://github.com/oh-my-commit/oh-my-commit" target="_blank" rel="noreferrer">https://github.com/oh-my-commit/oh-my-commit</a></li><li>文档(囿于精力,大部分文档内容都是 AI 自动生成,如有出入请以代码和 ReadMe 为准): <a href="https://oh-my-commit.github.io" target="_blank" rel="noreferrer">https://oh-my-commit.github.io</a></li><li>VSCode 插件: <a href="https://marketplace.visualstudio.com/items?itemName=oh-my-commit.oh-my-commit" target="_blank" rel="noreferrer">Oh My Commit</a></li><li>NPM 包:<a href="https://www.npmjs.com/settings/oh-my-commit/packages" target="_blank" rel="noreferrer">npm | oh-my-commit Settings: Packages</a></li></ul><p>合作、社群与答疑:</p><ul><li>遇到问题,推荐优先提 issue: <a href="https://github.com/oh-my-commit/oh-my-commit/issues" target="_blank" rel="noreferrer">https://github.com/oh-my-commit/oh-my-commit/issues</a></li><li>对产品感兴趣,可以联系加入我的 AI 技术(免费)/产品/商业交流群</li></ul><p>目前正在开发的功能:</p><ul><li>[x] 基础的 AI 提交信息生成</li><li>[x] CLI & VSCode 双平台支持</li><li>[x] 插件化架构</li><li>[x] 完整的提交工作流</li><li>[ ] Changeset 集成 (进行中)</li><li>[ ] prompt 管理系统 (计划中)</li><li>[ ] 提交历史分析 (计划中)</li></ul><p>一些设想:</p><p>如果我们在 commit 这个事情上打穿,把用户散落在各个 IDE、项目里的 commit 都贯穿起来,这个工具可以进化成?</p><ol><li><p><strong>程序员的编程画像</strong></p><ul><li>你最常改动哪些类型的文件</li><li>你的代码偏好是什么</li><li>你的提交习惯如何</li></ul></li><li><p><strong>团队的协作仪表盘</strong></p><ul><li>团队的代码修改热力图</li><li>成员间的协作网络</li><li>项目的演进历史</li></ul></li><li><p><strong>智能输入法</strong></p></li></ol><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 自动根据上下文推荐提交信息</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -m</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">> 推荐 1: fix(login): resolve undefined user object issue</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">> 推荐 2: feat(auth): add token refresh mechanism</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">> 推荐 3: style(ui): update login form layout</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span></span></code></pre></div><ol start="4"><li>……</li></ol><h2 id="特别感谢" tabindex="-1">特别感谢 <a class="header-anchor" href="#特别感谢" aria-label="Permalink to "特别感谢""></a></h2><ul><li>送我 cursor vip 的继刚兄,他打破了我对所谓“代码洁癖”坚持的幻想,结束了我十年人工编程的生涯,加速将我从一名程序员转变为技术型产品经理</li><li>提供 idea 与友情支持的春宇、胡博、宋奇、震杰、承平、子弹等一众朋友们</li><li>Anthropic、Windsurf 等杰出的 AI 公司</li></ul><h2 id="写在最后" tabindex="-1">写在最后 <a class="header-anchor" href="#写在最后" aria-label="Permalink to "写在最后""></a></h2><p>作为 2024 年的收官之作,Oh My Commi 虽小,却承载了我对 AI 时代开发工具的诸多思考。</p><p>这一个月的开发经历让我深深体会到:<strong>工具的价值不仅在于解决问题,更在于激发可能</strong>。</p><p>通过跟 AI 的密切协作,我看到了未来开发方式的一种可能性: <strong>让 AI 处理重复性的工作,让开发者专注于更有创意的部分</strong>。</p><p>这不仅仅是一个工具的诞生,更是对未来开发方式的一次探索。如果你也对此感兴趣,欢迎一起来玩:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "LLM YYDS \!"</span></span></code></pre></div><h2 id="花絮" tabindex="-1">花絮 <a class="header-anchor" href="#花絮" aria-label="Permalink to "花絮""></a></h2><h3 id="_1-本项目的作者有两个" tabindex="-1">1. 本项目的作者有两个 <a class="header-anchor" href="#_1-本项目的作者有两个" aria-label="Permalink to "1. 本项目的作者有两个""></a></h3><p>1% 的部分属于我,剩余 99% 属于 AI。</p><p><img src="https://poketto.oss-cn-hangzhou.aliyuncs.com/20241231173744.png" alt="image.png"></p><h3 id="_2-起个名字真难" tabindex="-1">2. 起个名字真难 <a class="header-anchor" href="#_2-起个名字真难" aria-label="Permalink to "2. 起个名字真难""></a></h3><p>起初名字叫 Yet Another AI Commit,后来叫 YAAC(雅刻),最后它的名字叫 Oh My Commit。</p><h3 id="_3-诞生背景" tabindex="-1">3. 诞生背景 <a class="header-anchor" href="#_3-诞生背景" aria-label="Permalink to "3. 诞生背景""></a></h3><p><img src="https://poketto.oss-cn-hangzhou.aliyuncs.com/20241231152613.png" alt="image.png"></p><p>说实话,如果不是有人和我提,我甚至都没能意识到自己其实是也需要一款 AI commit 工具的,可能是因为我长期独立开发,不太需要和别人合作,所以没能意识到规范自己 commit 的重要性。</p><blockquote><p>从这个角度出发,人确实还是需要”多在企业里呆着好“,才能实打实地发现企业的痛点,也就是”真需求“,从而解决问题,从而”换取报酬”,至于是否需要打着一个”创业“的名号,除非要”融资“,否则也没那么重要,甚至也无那么必要。</p></blockquote><p>但作为一个有代码洁癖的程序员,我自然也对混乱的代码提交信息深恶痛绝:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 真实项目中的提交记录</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> log</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --oneline</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">a123456</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">b234567</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> fix</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> bug</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">c345678</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 修改了一下</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">d456789</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 改了改</span></span></code></pre></div><p>每次看到这样的提交历史,总会想 - 身为程序员,写出规范、专业的提交信息难道不是基本素养吗?</p><p>然而现实是:</p><ul><li>一天写了十几个提交,每次都要绞尽脑汁想措辞</li><li>有时想用英文写得专业点,但总觉得不够地道</li><li>团队有统一的提交规范,但每次都要翻文档查格式</li><li>……</li></ul><p>而且就像垃圾分类推了这么多年还是分不清干湿,程序员也往往分不清 feat/fix/perf/... 啊……</p><p>我有时候为了尽可能记录足够完备的历史,commit 的频率非常高,以至于都不知道怎么 commit 才好,最后就 <code>git add . && git commit -m "."</code> …… (狗头)</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>* 2c8c412 - . (12 days ago) <markshawn2020></span></span>
<span class="line"><span>* db43470 - . (12 days ago) <markshawn2020></span></span>
<span class="line"><span>* 01e0a26 - . (12 days ago) <markshawn2020></span></span>
<span class="line"><span>* e30cd98 - . (12 days ago) <markshawn2020></span></span>
<span class="line"><span>* 10da285 - . (12 days ago) <markshawn2020></span></span>
<span class="line"><span>* 83903eb - :sparkles: better tsconfig path aliaas (12 days ago) <markshawn2020></span></span></code></pre></div><blockquote><p>“懒”真地是人类进步的原动力(不是)。</p></blockquote><p>虽然市面上已经有一些 AI Commit 工具,比如 130 star 的 <a href="https://github.com/mefengl/vscode-i-dont-care-about-commit-message" target="_blank" rel="noreferrer">mefengl/vscode-i-dont-care-about-commit-message: Yet another AI git commit plugin, but without the need for manual confirmation.</a>(下文代称 <code>I Dont Care</code>。</p><p><img src="https://poketto.oss-cn-hangzhou.aliyuncs.com/20241231154900.png" alt="image.png"></p><p>我觉得他做的很不错,使用了 vscode 的原生通知,还是挺优雅的,但有几个缺点:</p><ol><li><strong>UIUX</strong>:生成的信息不支持修改,以及不支持多行友好显示 body 部分(这个是 vscode 的限制,所以我额外支持了 webview 的交互模型)。</li><li><strong>算法</strong>:大部分ai commit 工具基本都是拿到 diff,然后调用一次大模型,基于 function call 生成符合目标格式的 commit message,但总会有一些缺陷,比如在diff 过长超出 token 限制的时候,就不得不转为手动commit。</li><li><strong>生态</strong>:目前它只支持 vscode 插件,但我们有时候会用其他 IDE,或者在 terminal 环境里,所以光做 vscode 插件可能是不够的。</li><li><strong>产品理念</strong>:参考 <a href="https://github.com/mefengl/vscode-i-dont-care-about-commit-message/pull/58" target="_blank" rel="noreferrer">feat(extension): add option to generate commit messages in Chinese</a> 作者提到自己开发这款插件是为了“<strong>Don't Care</strong>”,所以尽量不支持配置,与我 "<strong>Do Care</strong>" 的理念是不一致的,这种冲突就无法通过提 PR 去完善了,只能自己再造一个,尽管我确实有在它基础上改过。</li></ol><p><img src="https://poketto.oss-cn-hangzhou.aliyuncs.com/20241231152932.png" alt="image.png"></p><p>由于写 UIUX 这个是比较烦的,但是写 prompt 是比较简单的,所以我就想要不我来封装一个框架,定义一套 ai commit 的工作流,然后用户只需关心最核心的 prompt、data 等即可?</p><p>于是,一款产品就此诞生了。</p></div></div><!--]--></div></div></div><footer class="VPFooter" data-v-0b84fc2e data-v-2a9936e2><div class="container" data-v-2a9936e2><p class="message" data-v-2a9936e2>Released under the MIT License.</p><p class="copyright" data-v-2a9936e2>Copyright 2023-present Oh My Commit Team</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"changelog_index.md\":\"D96Y5xHo\",\"development_api_api.spec.md\":\"VSJ4Sl2m\",\"development_api_commands.md\":\"CgiYIFis\",\"development_api_configuration.md\":\"Bd0y90Y7\",\"development_api_hooks.md\":\"BGJe5we4\",\"development_api_index.md\":\"BvnUvnA4\",\"development_best-practice_commit-specification.md\":\"CuhAYacj\",\"development_best-practice_css-management.md\":\"UD5NHUAk\",\"development_best-practice_error-handler.md\":\"BvYEH-Lh\",\"development_best-practice_error-handling-advanced.md\":\"D902-DkI\",\"development_best-practice_state-management.md\":\"DLe9NNq2\",\"development_debug_vscode-debugging.md\":\"C1o0kvgV\",\"development_debug_vscode-webview-hmr.md\":\"DnlBFc7j\",\"development_extension-development.md\":\"DeDJ1lEL\",\"development_publish_publish-ovsx.md\":\"B9G0gljb\",\"development_publish_publish-vscode.md\":\"DcVeWe1u\",\"development_todo.md\":\"BduKUQQZ\",\"development_trouble-shooting_patch_debug-logs_tsup-watch-mode-fix.md\":\"C8jWcqxi\",\"development_trouble-shooting_patch_pnpm-patch.md\":\"CjizXUg5\",\"development_trouble-shooting_typescript-import-extensions.md\":\"CBA0-eNJ\",\"development_typescript_unsafe-types.md\":\"B9PX-NO1\",\"guide_ai-capabilities.md\":\"CrXlqdo-\",\"guide_ai-features.md\":\"jEQu_v58\",\"guide_coming-soon.md\":\"DPrZMN47\",\"guide_commit-modes.md\":\"DNDqUZJW\",\"guide_configuration.md\":\"B4rbcR4u\",\"guide_custom-prompt-template.md\":\"BUbT0PdU\",\"guide_faq.md\":\"vZKWhZGF\",\"guide_file-changes-view.md\":\"DFHkZauy\",\"guide_getting-started.md\":\"B4QpIqWK\",\"guide_introduction.md\":\"Dt7e8S55\",\"guide_provider-docs.md\":\"b2fFFX2v\",\"guide_team-collaboration.md\":\"D5QlHMS8\",\"index.md\":\"zJrarm8Z\",\"product_prd.md\":\"BNu0aL3P\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"Oh My Commit\",\"description\":\"Your AI-Powered Git Commit Assistant - 让 Git 提交变得优雅而智能\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/oh-my-commit_256.logo.png\",\"nav\":[{\"text\":\"指南\",\"link\":\"/guide/introduction\"},{\"text\":\"产品\",\"link\":\"/product/prd\"},{\"text\":\"开发\",\"link\":\"/development/todo\"},{\"text\":\"更新日志\",\"link\":\"/changelog/\"},{\"text\":\"即将推出\",\"link\":\"/guide/coming-soon\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/oh-my-commit/oh-my-commit\"}],\"sidebar\":{\"/guide/\":[{\"text\":\"入门\",\"items\":[{\"text\":\"介绍\",\"link\":\"/guide/introduction\"},{\"text\":\"快速开始\",\"link\":\"/guide/getting-started\"},{\"text\":\"常见问题\",\"link\":\"/guide/faq\"}]},{\"text\":\"核心概念\",\"items\":[{\"text\":\"AI 能力\",\"link\":\"/guide/ai-capabilities\"},{\"text\":\"提交模式\",\"link\":\"/guide/commit-modes\"},{\"text\":\"团队协作\",\"link\":\"/guide/team-collaboration\"},{\"text\":\"文件变更视图\",\"link\":\"/guide/file-changes-view\"}]},{\"text\":\"高级指南\",\"items\":[{\"text\":\"Provider 开发\",\"link\":\"/guide/provider-docs\"},{\"text\":\"自定义 Prompt 模板\",\"link\":\"/guide/custom-prompt-template\"}]},{\"text\":\"未来特性\",\"items\":[{\"text\":\"即将推出\",\"link\":\"/guide/coming-soon\"}]}],\"/product/\":[{\"text\":\"产品\",\"items\":[{\"text\":\"产品需求文档\",\"link\":\"/product/prd\"}]}],\"/development/\":[{\"text\":\"开发\",\"items\":[{\"text\":\"开发计划\",\"link\":\"/development/todo\"},{\"text\":\"开发指南\",\"items\":[{\"text\":\"插件开发\",\"link\":\"/development/extension-development\"},{\"link\":\"/development/best-practice/commit-specification\",\"text\":\"Commit 规范\"},{\"link\":\"/development/best-practice/state-management\",\"text\":\"状态管理\"},{\"link\":\"/development/best-practice/css-management\",\"text\":\"CSS 管理\"},{\"link\":\"/development/best-practice/error-handler\",\"text\":\"Error 处理\"},{\"link\":\"/development/best-practice/error-handling-advanced\",\"text\":\"高级 Error 处理\"}]},{\"text\":\"API\",\"link\":\"/development/api\",\"items\":[{\"text\":\"规范\",\"link\":\"/development/api/api.spec\"},{\"text\":\"配置项\",\"link\":\"/development/api/configuration\"},{\"text\":\"命令列表\",\"link\":\"/development/api/commands\"},{\"text\":\"事件钩子\",\"link\":\"/development/api/hooks\"}]},{\"text\":\"调试\",\"items\":[{\"text\":\"VSCode 调试\",\"link\":\"/development/debug/vscode-debugging\"},{\"link\":\"/development/debug/vscode-webview-hmr\",\"text\":\"VSCode Webview HMR\"}]},{\"text\":\"Trouble Shooting\",\"items\":[{\"link\":\"/development/trouble-shooting/typescript-import-extensions\",\"text\":\"TS 导入扩展名问题\"},{\"link\":\"/development/trouble-shooting/patch/pnpm-patch\",\"text\":\"pnpm patch 最佳实践\"}]},{\"text\":\"Publish\",\"items\":[{\"link\":\"/development/publish/publish-vscode\",\"text\":\"Publish to VSCode\"},{\"link\":\"/development/publish/publish-ovsx\",\"text\":\"Publish to OVSX\"}]}]}],\"/changelog/\":[{\"text\":\"更新日志\",\"items\":[{\"text\":\"最新更新\",\"link\":\"/changelog/\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/oh-my-commit/oh-my-commit\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright 2023-present Oh My Commit Team\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>