在使用 Git 进行版本控制时,良好的提交信息可以帮助团队成员更好地理解每次提交的目的和影响。为了规范化提交信息,一些团队采用了特定的格式或约定,比如 Angular 团队提出的 Commit Message Conventions。这种规范有助于自动化工具的使用,例如自动生成变更日志。
以下是一些常见的提交类型及其含义,这些类型通常用于描述提交的主要目的:
- feat: 添加新功能(feature)
- fix: 修复错误(bug fix)
- chore: 不修改 src 或 test 文件的更改,通常是更新构建系统或外部依赖(如 gulp, npm 等)
- refactor: 重构现有代码,既不添加功能也不修复错误
- docs: 文档更新
- style: 不影响代码运行的改动(如空格、格式化、删除多余字符等)
- test: 增加缺失的测试用例或修正现有的测试用例
- perf: 性能优化
- ci: 持续集成相关文件的更改
- revert: 回滚到之前的某个状态
- build: 影响构建系统的更改,例如改变编译器配置或构建脚本
- restruct: 重组项目结构,这可能涉及到大量文件的移动或重命名,但不一定涉及功能的变化
对于 restruct
类型,虽然它不是标准的 Commit Message Conventions 中的一部分,但是有些团队可能会采用这个标签来表示对项目结构的重大调整。如果你的团队决定使用 restruct
作为提交类型,确保所有团队成员都了解其含义,并且在文档中明确指出。
当编写提交信息时,推荐的格式如下:
<type>(optional scope): <description>
Optional body with details and justification.
Optional footer with issue references.
当然可以,以下是几个符合 Commit Message Conventions 标准的中文提交信息示例:
示例 1: 添加新功能
feat(用户资料): 添加用户头像上传功能
增加了允许用户上传和更新个人资料图片的功能。包括客户端表单验证和服务器端图像处理。
关闭 #456
示例 2: 修复错误
fix(认证): 解决令牌过期问题
修复了一个认证令牌在过期后未能正确刷新的问题。现在令牌刷新流程能够正确处理失败情况下的重试。
修复 #123
示例 3: 构建任务
chore(构建): 升级 Webpack 至版本 5
将项目的 Webpack 配置升级到了版本 5。这包括更新加载器和插件以兼容新的主要版本。
本次更新未对功能进行任何更改。
示例 4: 重构代码
refactor(服务): 重构用户服务模块
重构了用户服务模块,提高了代码的可读性和维护性。没有引入新的功能或修复已知的问题。
改进 #789
示例 5: 更新文档
docs(指南): 更新安装指南
更新了安装指南,增加了关于环境变量配置的新章节,并修正了一些拼写错误。
参考 #101
这些示例展示了如何使用不同的提交类型来描述具体的更改,并提供了简短的描述以及可选的详细信息和问题引用。这样可以使团队成员更容易理解和追踪每次提交的目的和影响。
通过遵循这样的规范,可以提高团队协作效率,确保每个成员都能快速准确地理解每次提交的内容。