提交git规范

我们提交git的注释规范是:

feat:新增feature
fix: 修复bug,有bug编号要带Bug号
docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括单元测试、集成测试等
chore: 改变构建流程、或者增加依赖库、工具等
revert: 回滚到上一个版本

禅道系统上解决Bug的注释规范是:
产生原因:XXX;
解决方案:XXX;
影响范围:XXX
git版本: a3dc059


Git 版本控制系统中,提交信息(commit message)是开发者与代码库交互的重要记录。一个规范化的提交信息不仅有助于团队协作,还能提升代码审查效率,并为后续的版本管理和自动化工具提供可靠的数据支持。以下是 Git 提交信息的格式规范与最佳实践。 ### 提交信息的基本格式 Git 提交信息通常遵循如下结构: ``` <type>(<scope>): <subject> <body> <footer> ``` - **`<type>`**:表示提交的类型,如 `feat`(新功能)、`fix`(修复 bug)、`chore`(日常维护)、`docs`(文档更新)等。 - **`<scope>`**(可选):用于指定提交影响的范围,如模块名或文件名。 - **`<subject>`**:简要描述此次提交的内容,通常不超过 50 个字符。 - **`<body>`**:对提交内容的详细说明,可以包括动机、实现方式、与其他提交的关联等。 - **`<footer>`**:通常用于引用关闭的 issue 或任务编号,如 `Closes #123`。 例如: ``` feat(auth): add password strength meter Implement real-time feedback for password complexity during registration. - Check for uppercase, lowercase, numbers, and special characters - Display visual indicator to user Closes #456 ``` ### 最佳实践 1. **使用 Conventional Commits 规范** Conventional Commits 是一种广泛采用的提交规范,它提供了一套标准化的语义化提交格式,有助于自动生成变更日志(ChangeLog)和进行自动化版本管理[^2]。 2. **保持提交信息简洁明了** 提交信息应尽量简洁,避免冗长。第一行应概括提交目的,后续内容用于补充细节。建议使用祈使句(如 "Fix bug" 而非 "Fixed bug")[^4]。 3. **每次提交只完成一个逻辑变更** 保持提交的原子性,每个提交应只完成一个清晰的任务。这样可以提高代码审查的效率,并便于回滚或合并。 4. **避免“WIP”或模糊提交信息** 提交信息应具有描述性,避免使用“WIP”、“update”、“changes”等无意义的描述。清晰的提交信息有助于后续查找和理解变更原因。 5. **使用工具辅助规范提交** 可以借助 Git 钩子(Git Hooks)或第三方工具(如 Commitizen、Husky)来强制执行提交规范,防止不规范提交信息进入代码库。 6. **结合分支策略进行提交管理** 在使用 GitFlow 或 Feature Branch 等分支策略时,确保每个分支的提交信息与该分支的目标一致,便于后续合并和追踪[^3]。 7. **为自动化工具预留结构化信息** 遵循结构化提交格式有助于 CI/CD 系统、自动化测试和版本发布工具解析提交内容,从而生成变更日志或自动升级版本号[^2]。 ### 示例代码:使用 Git Hook 校验提交信息格式 以下是一个简单的 Git Hook 示例,用于检查提交信息是否符合规范: ```bash #!/bin/sh # .git/hooks/commit-msg MSG_FILE=$1 MSG=$(cat $MSG_FILE) # 检查提交信息是否以 feat、fix、chore 等开头 echo "$MSG" | grep -E "^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)" > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "ERROR: Commit message must start with a valid type (feat, fix, chore, etc.)" >&2 exit 1 fi # 检查第一行长度是否超过50字符 FIRST_LINE=$(echo "$MSG" | head -n 1) if [ ${#FIRST_LINE} -gt 50 ]; then echo "ERROR: First line of commit message must be <= 50 characters" >&2 exit 1 fi exit 0 ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值