Conventional Git

Polar Sponsor
爱发电 赞助
.NET 9.0

Conventional Commits v1.0.0 分支、工作树命名及提交信息规范,适用于 GitHub 与 GitLab 项目,用于创建分支和命名工作树等场景。

常规提交和分支命名

功能概述

常规提交和分支命名是一项面向实际任务的技能,主要用于既针对分支名称又针对承诺消息遵循常规提交 v1. 0.0 —— 一致命名让工具自动生成变换日志, 强制执行 SemVer 缓冲。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

约定式提交(Conventional Commits)与分支命名规范

分支名称和提交信息均须遵循 Conventional Commits v1.0.0 规范 —— 统一的命名方式可使工具自动生成功能变更日志(changelog)、强制执行语义化版本(SemVer)升级策略,并按关注点(concern)筛选提交历史。

分支命名

格式:/[issue-] —— 全小写,仅使用短横线(-)分隔单词,除斜杠(/)外不得包含其他特殊字符。

feat/user-authentication
feat/42-user-authentication
fix/login-race-condition
fix/87-login-race-condition
docs/api-reference-update
refactor/payment-module

若存在对应 issue,则应在分支名前缀中加入 issue 编号 —— GitHub 与 GitLab 会自动将其链接至 issue 系统,且能使 git log 输出立即追溯到问题追踪器。描述部分应控制在 50 个字符以内 —— 大多数 Git 图形界面在列表中显示分支名时即在此长度附近截断。请确保 type 准确反映当前工作内容 —— 这是读者快速理解分支意图的核心契约。

严禁 在分支名中包含 worktree —— Git worktree 是一种本地检出机制,不属于分支概念;将其混入分支名会将实现细节泄露至远程仓库,干扰其他协作者的理解。

Worktree 命名

Worktree 是本地检出目录,永远不会出现在远程仓库中。请统一将其置于 .claude/worktrees/ 目录下,并将分支名中的斜杠(/)替换为短横线(-)作为 worktree 目录名。

git worktree add .claude/worktrees/feat-user-authentication feat/user-authentication
git worktree add .claude/worktrees/fix-87-login-race-condition fix/87-login-race-condition

目录名与分支名保持镜像关系,以确保 git worktree list 输出清晰可读,且每个 worktree 可不依赖检出状态而直接追溯至其所属分支。创建新 worktree 前,请先运行 git worktree list —— 若已有 worktree 已覆盖相同分支,请复用该 worktree。

每个 worktree 应严格限定于单一分支。在他人 worktree 中开展无关工作,将导致变更归属模糊、清理操作易出错。

分支合并后请立即移除对应 worktree —— 可在本地完成合并后执行,也可在远程 Pull Request / Merge Request 关闭后执行。残留的 stale worktree 将不断累积,最终导致 git worktree list 输出难以阅读。

git worktree remove .claude/worktrees/feat-user-authentication   # 分支已在本地合并
git worktree prune                                                # 清理已删除目录的引用

提交信息格式

[optional scope]: 
[optional body]
[optional footer(s)]

类型(Types):

类型 SemVer 适用场景
feat MINOR 新增功能
fix PATCH 修复缺陷(bug)
docs 仅修改文档
style 代码格式调整(无逻辑变更)
refactor 代码重构(不涉及功能或缺陷修复)
perf 性能优化
test 新增或修复测试
build 构建系统、依赖项相关变更
ci CI 配置变更
chore 其他杂项任务(非源码/测试文件变更)
revert 回退某次先前提交

规则:

  • 主题行(subject line)长度 ≤ 72 字符 —— Git 日志及 GitHub/GitLab UI 会静默截断超长主题行
  • 使用祈使语气(imperative mood):写 add 而非 added —— 表达为指令而非历史记录
  • 首字母不需大写,末尾不加句号 —— 确保变更日志(changelog)工具可统一解析
  • 正文(body)须与主题行空一行分隔 —— 解析器依据首个空行切分 header/body
  • 破坏性变更(breaking changes):可在 type/scope 后添加 !,或在 footer 中添加 BREAKING CHANGE:(二者均触发 MAJOR 版本升级)—— 仅在正文中描述破坏性变更将无法被 changelog 工具识别
  • revert 类提交 必须 在正文中包含 This reverts commit . —— git revert 命令自动生成此行,请勿手动删除
  • 严禁 在提交信息中添加 Claude 签名、AI 代理署名,或为 Claude 或任何其他 AI 代理添加 Co-authored-by trailer

示例:

feat(auth): add JWT token refresh
fix: prevent race condition on concurrent requests

Introduce request ID and reference to latest request.
Dismiss responses from stale requests.
refactor!: drop support for Go 1.18

BREAKING CHANGE: Go 1.18 no longer supported; uses stdlib APIs from 1.21+

通过提交信息关闭 Issue

GitHub 与 GitLab 均支持识别提交信息中的关键词,并在该提交落地至默认分支(default branch)时自动关闭所引用的 issue。建议将 issue 引用置于 footer 区域(更优实践 —— 保持主题行简洁)。

关键词(不区分大小写): closeclosesclosedfixfixesfixedresolveresolvesresolved

GitHub:

fix(auth): prevent token expiry race condition

Closes #42
Closes owner/repo#99
  • 仅当合并至 默认分支(通常为 main)时触发
  • 跨仓库引用:Closes owner/repo#42
  • 批量关闭:Closes #42, closes #43
  • 同样适用于 PR 描述(PR description)

GitLab:

feat: add dark mode support

Resolves #101
Closes group/project#42
  • 仅当合并至 默认分支(各项目可单独配置)时触发
  • 跨项目引用:Closes group/project#42
  • 批量关闭:Closes #101, closes #102
  • 同样适用于 MR 描述(MR description)

提示: 提交类型应与 issue 类型匹配 —— 如 fix: 用于关闭缺陷类 issue,feat: 用于关闭功能需求类 issue —— 此举可保障生成的 changelog 语义连贯、逻辑清晰。

常见错误

错误示例 修正方式
feat: Added login page feat: add login page —— 使用祈使语气,首字母小写
fix: fix bug. fix: fix bug —— 删除末尾句号
主题行超过 72 字符 精简主题行;细节移至正文(body)
破坏性变更仅在正文中描述 添加 !BREAKING CHANGE: footer —— 仅靠正文描述无法被工具识别
feat(adding-auth): ... feat(auth): ... —— scope 应为名词,而非动词
Closes #42 出现在主题行中 移至 footer —— 保证主题行简洁、可解析

最佳实践

  • 保持分支类型与提交类型一致 —— 如 feat/auth-* 分支 → 对应提交应为 feat(auth):
  • 每一分支聚焦单一关注点 —— 在功能分支中混入修复类变更将导致 changelog 混乱难读
  • 在单一分支内保持 scope 使用一致性 —— 如全程使用 feat(auth):,避免中途改为 feat(user):
  • 合并且压缩(Squash merge): 当对 PR/MR 执行 squash merge 时,该分支所有提交将被压缩为一条;此时 PR/MR 标题即成为最终提交信息。若标题未遵循 Conventional Commits 格式,changelog 生成将静默失败。因此,请务必在执行 squash 操作前设置好 PR 标题。

相关专题

更多
git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2281

6

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2517

7

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

714

5

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1260

6

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

3859

9

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 7.8万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.8万人学习