git commit 提交规范建议

在使用 git commit -m 时,遵循规范的提交信息格式可以提高代码可读性、协作效率和版本管理质量。以下是常见的提交规范建议:

1. 基础格式

<类型>(<作用域>): <主题>
  • 类型:说明提交的类别(必填)
  • 作用域:可选,说明影响的范围(如模块、组件)
  • 主题:简明扼要的提交描述

2. 常用提交类型(Type)

类型说明
feat新增功能
fix修复 bug
docs文档变更(如 README、注释)
style代码格式调整(不影响逻辑,如空格、分号)
refactor代码重构(既非新增功能,也非修复 bug)
perf性能优化
test测试相关(新增或修改测试用例)
chore构建/工具/依赖变更(如修改 CI、更新依赖包)
revert回退某次提交

3. 作用域(Scope)

  • 可选字段,用括号包裹,说明代码影响的范围(如模块、组件)
    例如:fix(login): 修复登录按钮样式问题

4. 主题(Subject)

  • 简明扼要:控制在 50 字符以内
  • 首字母小写:无需大写或句号结尾
  • 使用祈使语气:如 “add” 而不是 “added” 或 “adds”

5. 示例

# 标准提交
git commit -m "feat(user): 新增用户注册功能"

# 带作用域的修复
git commit -m "fix(auth): 修复 OAuth 令牌过期问题"

# 文档更新
git commit -m "docs(api): 补充接口返回示例"

# 代码重构
git commit -m "refactor(utils): 优化日期格式化函数"

6. 避免的写法

  • git commit -m "update code" (过于模糊)
  • git commit -m "fix bug" (未说明具体问题)
  • git commit -m "修改了一些东西" (非英文或未遵循类型规范)

7. 复杂提交建议

如果提交需要详细说明,建议省略 -m 直接进入编辑器编写多行信息:

git commit

格式示例:

feat(dashboard): 新增数据统计面板

- 添加用户活跃度图表
- 集成实时数据 API
- 优化图表响应式布局

Closes #123

遵循规范能让团队协作更高效,也方便通过 git log 快速追踪变更历史。

### Git Commit Message 规范示例 #### 单行提交信息格式 每次提交应当只解决一个问题,这有助于简化代码审查过程并提高可追溯性。单行提交信息应该简洁明了,通常不超过72个字符[^1]。 ```plaintext type(scope): subject ``` - `type` 表示更改的性质(如 feat, fix) - `scope` 是可选字段,用于指定受影响的部分或模块名称 - `subject` 描述所做的改动摘要 #### 完整多行提交信息结构 对于更复杂的变更,则推荐采用如下完整的多行格式: ```plaintext type(scope): subject Body explaining the change and its motivation. Footer with any relevant issue references. ``` 其中: - **Header**: 包含三部分——类型(type),作用域(scope)以及主题(subject) - **Body**: 对修改原因及实现细节做进一步解释说明;如果适用的话还可以提及如何测试这些变化。 - **Footer**: 如果有的话,在这里注明关联的问题编号或者其他元数据信息,例如关闭某个GitHub Issues。 #### 实际案例展示 ##### 添加新功能的例子 当向项目中引入新的特性时,可以这样书写commit message: ```plaintext feat(user-profile): add avatar upload feature Allow users to upload avatars from their local machines or via URL links. This enhancement improves user experience by personalizing profiles. Closes #1234 ``` ##### 修复Bug的例子 针对错误修正类别的提交消息则像下面这样表达: ```plaintext fix(authentication): resolve login redirect loop on Safari browser The previous implementation caused an infinite redirection when logging in using Safari due to incorrect handling of session cookies. The solution was implemented according to best practices outlined at MDN Web Docs regarding secure cookie settings. Fixes #9876 ``` #### 工具支持 为了确保团队成员都能遵循一致的消息格式化规则,建议使用工具辅助验证。例如可以通过配置 pre-commit hook 来运行 validate-commit-msg 或者集成 CI/CD 流程中的检查脚本以自动拒绝不符合规定的提交请求[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值