68 lines
16 KiB
JavaScript
68 lines
16 KiB
JavaScript
import{_ as a,o as i,c as n,a2 as t}from"./chunks/framework.B-QBKwc1.js";const k=JSON.parse('{"title":"Git 提交规范","description":"统一的 Git 提交规范有助于代码审查、版本管理和自动化工具集成。","frontmatter":{},"headers":[],"relativePath":"zh/standards/git.md","filePath":"zh/standards/git.md"}'),e={name:"zh/standards/git.md"};function p(d,s,l,c,o,h){return i(),n("div",null,[...s[0]||(s[0]=[t(`<h1 id="_12-3-Git-提交规范" tabindex="-1">12.3 Git 提交规范 <a class="header-anchor" href="#_12-3-Git-提交规范" aria-label="Permalink to "12.3 Git 提交规范""></a></h1><div class="tip custom-block"><p class="custom-block-title">概述</p><p>统一的 Git 提交规范有助于代码审查、版本管理和自动化工具集成。前端工程提供了 commitlint 配置(<code>ui/commitlint.config.js</code>,依赖中含 husky / lint-staged),按其规范提交可通过自动化校验。</p></div><h2 id="Commit-Message-格式" tabindex="-1">Commit Message 格式 <a class="header-anchor" href="#Commit-Message-格式" aria-label="Permalink to "Commit Message 格式""></a></h2><div class="language-html vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;"><</span><span style="--shiki-dark:#EE6666;--shiki-dark-font-style:italic;--shiki-dark-text-decoration:underline;--shiki-light:#B31D28;--shiki-light-font-style:inherit;--shiki-light-text-decoration:inherit;">type</span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;">></span><span style="--shiki-dark:#F6F6F4;--shiki-light:#393A34;">(</span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;"><</span><span style="--shiki-dark:#EE6666;--shiki-dark-font-style:italic;--shiki-dark-text-decoration:underline;--shiki-light:#B31D28;--shiki-light-font-style:inherit;--shiki-light-text-decoration:inherit;">scope</span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;">></span><span style="--shiki-dark:#F6F6F4;--shiki-light:#393A34;">): </span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;"><</span><span style="--shiki-dark:#EE6666;--shiki-dark-font-style:italic;--shiki-dark-text-decoration:underline;--shiki-light:#B31D28;--shiki-light-font-style:inherit;--shiki-light-text-decoration:inherit;">subject</span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;">></span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;"><</span><span style="--shiki-dark:#F286C4;--shiki-light:#1E754F;">body</span><span style="--shiki-dark:#F6F6F4;--shiki-light:#999999;">></span></span></code></pre></div><div class="info custom-block"><p class="custom-block-title">中文友好</p><p><code>ui/commitlint.config.js</code> 的 <code>headerPattern</code> 支持中文 type、全角括号与全角冒号,如 <code>新增(用户): 导入导出功能</code> 也可通过校验;建议仍统一使用下述标准 type。头部最长 108 字符。</p></div><h2 id="Type-类型" tabindex="-1">Type 类型 <a class="header-anchor" href="#Type-类型" aria-label="Permalink to "Type 类型""></a></h2><p>以 <code>ui/commitlint.config.js</code> 的 <code>type-enum</code> 为准:</p><table tabindex="0"><thead><tr><th>type</th><th>说明</th><th>示例</th></tr></thead><tbody><tr><td><code>feat</code></td><td>新功能</td><td><code>feat(user): 新增用户导入导出功能</code></td></tr><tr><td><code>fix</code></td><td>修复 Bug</td><td><code>fix(login): 修复验证码过期后仍可使用的问题</code></td></tr><tr><td><code>perf</code></td><td>性能优化</td><td><code>perf(dict): 增加字典缓存减少数据库查询</code></td></tr><tr><td><code>style</code></td><td>代码格式(不影响功能)</td><td><code>style: 统一代码缩进</code></td></tr><tr><td><code>docs</code></td><td>文档</td><td><code>docs: 更新 API 接口文档</code></td></tr><tr><td><code>test</code></td><td>测试</td><td><code>test: 添加用户模块单元测试</code></td></tr><tr><td><code>refactor</code></td><td>重构</td><td><code>refactor(service): 优化分页查询性能</code></td></tr><tr><td><code>build</code></td><td>构建</td><td><code>build: 升级 Vite 构建配置</code></td></tr><tr><td><code>ci</code></td><td>CI 配置</td><td><code>ci: 补充后端 Pint 检查步骤</code></td></tr><tr><td><code>chore</code></td><td>杂项/工具</td><td><code>chore: 更新 Composer 依赖</code></td></tr><tr><td><code>revert</code></td><td>回滚</td><td><code>revert: 回滚 feat(user) 导入功能</code></td></tr><tr><td><code>wip</code></td><td>进行中</td><td><code>wip(user): 导入导出开发中</code></td></tr><tr><td><code>workflow</code></td><td>工作流</td><td><code>workflow: 调整分支保护规则</code></td></tr><tr><td><code>types</code></td><td>类型定义</td><td><code>types: 补充前端 API 类型声明</code></td></tr><tr><td><code>release</code></td><td>发版</td><td><code>release: v1.2.0</code></td></tr></tbody></table><h2 id="Scope-范围" tabindex="-1">Scope 范围 <a class="header-anchor" href="#Scope-范围" aria-label="Permalink to "Scope 范围""></a></h2><table tabindex="0"><thead><tr><th>scope</th><th>说明</th></tr></thead><tbody><tr><td><code>user</code></td><td>用户模块</td></tr><tr><td><code>role</code></td><td>角色模块</td></tr><tr><td><code>menu</code></td><td>菜单模块</td></tr><tr><td><code>dict</code></td><td>字典模块</td></tr><tr><td><code>job</code></td><td>定时任务</td></tr><tr><td><code>auth</code></td><td>认证授权</td></tr><tr><td><code>upload</code></td><td>文件上传</td></tr><tr><td><code>generator</code></td><td>代码生成器</td></tr><tr><td><code>config</code></td><td>配置</td></tr><tr><td><code>deploy</code></td><td>部署</td></tr></tbody></table><h2 id="示例" tabindex="-1">示例 <a class="header-anchor" href="#示例" aria-label="Permalink to "示例""></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># 新功能(feat)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -m → 指定提交信息(单行简短描述)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#62E884;--shiki-light:#59873A;">git</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;"> commit</span><span style="--shiki-dark:#BF9EEE;--shiki-light:#A65E2B;"> -m</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;"> "</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;">feat(article): 新增文章管理模块</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># 修复 Bug(fix)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#62E884;--shiki-light:#59873A;">git</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;"> commit</span><span style="--shiki-dark:#BF9EEE;--shiki-light:#A65E2B;"> -m</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;"> "</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;">fix(login): 修复密码错误时未记录登录日志的问题</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># 文档更新(docs)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#62E884;--shiki-light:#59873A;">git</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;"> commit</span><span style="--shiki-dark:#BF9EEE;--shiki-light:#A65E2B;"> -m</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;"> "</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;">docs: 补充多数据库部署文档</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># 重构(refactor)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#62E884;--shiki-light:#59873A;">git</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;"> commit</span><span style="--shiki-dark:#BF9EEE;--shiki-light:#A65E2B;"> -m</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;"> "</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;">refactor(service): 统一删除前校验逻辑</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># 性能优化(perf)</span></span>
|
||
<span class="line"><span style="--shiki-dark:#7B7F8B;--shiki-light:#A0ADA0;"># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span style="--shiki-dark:#62E884;--shiki-light:#59873A;">git</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;"> commit</span><span style="--shiki-dark:#BF9EEE;--shiki-light:#A65E2B;"> -m</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;"> "</span><span style="--shiki-dark:#E7EE98;--shiki-light:#B56959;">perf(dict): 增加请求级缓存减少重复查询</span><span style="--shiki-dark:#DEE492;--shiki-light:#B5695977;">"</span></span></code></pre></div><h2 id="注意事项" tabindex="-1">注意事项 <a class="header-anchor" href="#注意事项" aria-label="Permalink to "注意事项""></a></h2><div class="warning custom-block"><p class="custom-block-title">禁止事项</p><ul><li>不要提交调试代码(<code>console.log</code>、<code>dd()</code>、<code>dump</code>、<code>var_dump</code>)</li><li>不要提交敏感信息(密码、密钥、Token、<code>.env</code>)</li><li>不要提交 IDE 配置文件(<code>.idea/</code>、<code>.vscode/</code>)</li><li>一个 commit 只做一件事</li></ul></div><h2 id="-gitignore" tabindex="-1">.gitignore <a class="header-anchor" href="#-gitignore" aria-label="Permalink to ".gitignore""></a></h2><p>项目根目录 <code>.gitignore</code> 关键规则:</p><div class="language-gitignore vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">gitignore</span><pre class="shiki shiki-themes dracula-soft vitesse-light vp-code" tabindex="0"><code><span class="line"><span># =============================================================================</span></span>
|
||
<span class="line"><span># .gitignore — Git 版本控制忽略规则(摘自项目根目录,含说明)</span></span>
|
||
<span class="line"><span># =============================================================================</span></span>
|
||
<span class="line"><span># 匹配的文件不会被 git track(不会提交到仓库)</span></span>
|
||
<span class="line"><span># =============================================================================</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span># 环境配置与备份(包含数据库密码、JWT 密钥等敏感信息 — 绝不能提交)</span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span>.env</span></span>
|
||
<span class="line"><span>.env.backup</span></span>
|
||
<span class="line"><span>.env.production</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span># 运行时与依赖(自动生成/体积庞大,通过 composer install、npm install 重建)</span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span>/vendor</span></span>
|
||
<span class="line"><span>/node_modules</span></span>
|
||
<span class="line"><span>/storage/*.key</span></span>
|
||
<span class="line"><span>/storage/pail</span></span>
|
||
<span class="line"><span>/public/build</span></span>
|
||
<span class="line"><span>/public/hot</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span># IDE 与系统文件(每个开发者的环境不同 — 不应互相影响)</span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span>/.idea</span></span>
|
||
<span class="line"><span>/.vscode</span></span>
|
||
<span class="line"><span>/.fleet</span></span>
|
||
<span class="line"><span>/.nova</span></span>
|
||
<span class="line"><span>/.zed</span></span>
|
||
<span class="line"><span>.DS_Store</span></span>
|
||
<span class="line"><span>Thumbs.db</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span># 测试与工具缓存</span></span>
|
||
<span class="line"><span># -----------------------------------------------------------------------------</span></span>
|
||
<span class="line"><span>*.log</span></span>
|
||
<span class="line"><span>/.phpunit.cache</span></span>
|
||
<span class="line"><span>.phpunit.result.cache</span></span>
|
||
<span class="line"><span>.phpactor.json</span></span></code></pre></div><div class="info custom-block"><p class="custom-block-title">前端依赖</p><p>前端依赖忽略规则由 <code>ui/node_modules</code>(<code>.gitignore</code> 中 <code>/node_modules</code> 对应各前端包目录)覆盖,<code>pnpm-lock.yaml</code> <strong>必须提交</strong>(保证依赖版本一致)。</p></div>`,18)])])}const g=a(e,[["render",p]]);export{k as __pageData,g as default};
|