8.5 KiB
8.5 KiB
Git 使用规范
目录
分支命名规范
分支类型
1. 主分支
- master/main: 生产环境分支,只接受合并,不允许直接提交
- develop/dev: 开发主分支,用于集成所有功能
2. 功能分支 (Feature)
feature/功能名称
feature/功能名称-简短描述
示例:
feature/user-loginfeature/payment-integrationfeature/contacts-friends
3. 修复分支 (Bugfix)
bugfix/问题描述
fix/问题描述
示例:
bugfix/login-errorfix/memory-leak
4. 热修复分支 (Hotfix)
hotfix/问题描述
示例:
hotfix/critical-security-patchhotfix/payment-bug
5. 发布分支 (Release)
release/版本号
示例:
release/v1.0.0release/v2.1.0
命名规则
- 使用小写字母
- 多个单词用连字符
-分隔 - 避免使用下划线
_或空格 - 分支名要有意义,能清楚表达分支用途
- 避免使用特殊字符:
~,^,:,?,*,[,\
提交信息规范
提交信息格式
<type>(<scope>): <subject>
<body>
<footer>
Type 类型
| 类型 | 说明 | 示例 |
|---|---|---|
feat |
新功能 | feat: 添加用户登录功能 |
fix |
修复bug | fix: 修复登录验证失败问题 |
docs |
文档更新 | docs: 更新API文档 |
style |
代码格式调整(不影响功能) | style: 格式化代码 |
refactor |
代码重构 | refactor: 重构用户服务类 |
perf |
性能优化 | perf: 优化数据库查询性能 |
test |
测试相关 | test: 添加用户登录单元测试 |
chore |
构建/工具/依赖更新 | chore: 更新依赖包版本 |
ci |
CI/CD相关 | ci: 配置GitHub Actions |
build |
构建系统相关 | build: 更新Maven配置 |
Scope 范围(可选)
- 指定修改的模块或文件
- 示例:
feat(user): 添加用户注册功能
Subject 主题
- 简短描述,不超过50个字符
- 使用中文或英文,保持项目统一
- 首字母小写,结尾不加句号
- 使用祈使语气(如:添加、修复、更新)
Body 正文(可选)
- 详细描述修改内容
- 说明为什么修改,如何修改
- 每行不超过72个字符
- 用空行与 subject 分隔
Footer 页脚(可选)
- 关联Issue:
Closes #123 - 破坏性变更:
BREAKING CHANGE: 修改了API接口
提交信息示例
简单提交
feat: 添加联系人管理功能
带scope的提交
feat(user): 添加用户头像上传功能
详细提交
feat(contact): 添加联系人管理功能
- 实现联系人列表查询
- 添加联系人添加/删除接口
- 集成Redis缓存优化性能
Closes #45
修复提交
fix: 修复登录验证失败问题
修复了当用户密码包含特殊字符时验证失败的问题
Fixes #67
工作流程
1. 创建功能分支
# 从develop分支创建新分支
git checkout develop
git pull origin develop
git checkout -b feature/your-feature-name
2. 开发过程
# 经常提交代码
git add .
git commit -m "feat: 实现XXX功能"
# 定期同步主分支
git checkout develop
git pull origin develop
git checkout feature/your-feature-name
git merge develop
3. 提交前检查
# 检查代码状态
git status
# 查看修改内容
git diff
# 查看提交历史
git log --oneline
4. 推送分支
# 首次推送
git push -u origin feature/your-feature-name
# 后续推送
git push
5. 合并到主分支
# 方式1: 通过Pull Request(推荐)
# 在Git平台创建PR,代码审查后合并
# 方式2: 本地合并(不推荐,除非紧急情况)
git checkout develop
git pull origin develop
git merge feature/your-feature-name
git push origin develop
6. 清理分支
# 删除本地分支
git branch -d feature/your-feature-name
# 删除远程分支
git push origin --delete feature/your-feature-name
代码审查
Pull Request 规范
PR标题格式
[类型] 简短描述
示例:
[Feature] 添加联系人管理功能[Fix] 修复登录验证问题[Refactor] 重构用户服务类
PR描述模板
## 变更说明
简要描述本次PR的主要变更内容
## 变更类型
- [ ] 新功能
- [ ] Bug修复
- [ ] 代码重构
- [ ] 文档更新
- [ ] 性能优化
- [ ] 其他
## 测试说明
描述如何测试这些变更
## 相关Issue
关联的Issue编号: #123
## 截图(如适用)
[添加相关截图]
审查检查清单
提交者
- 代码符合项目规范
- 已添加必要的测试
- 已更新相关文档
- 提交信息清晰明确
- 无编译错误和警告
- 已进行自测
审查者
- 代码逻辑正确
- 代码风格一致
- 无明显的性能问题
- 无安全隐患
- 测试覆盖充分
- 文档更新完整
最佳实践
1. 提交频率
- ✅ 推荐: 频繁提交,每次提交完成一个小功能
- ❌ 不推荐: 大量代码一次性提交
2. 提交粒度
- ✅ 推荐: 每次提交只做一件事
- ❌ 不推荐: 一个提交包含多个不相关的修改
3. 提交前检查
# 检查代码格式
# 运行测试
# 检查编译错误
4. 避免的操作
- ❌ 不要在master/main分支直接提交
- ❌ 不要提交临时文件、日志文件
- ❌ 不要提交敏感信息(密码、密钥等)
- ❌ 不要强制推送主分支 (
git push --force)
5. 使用 .gitignore
确保 .gitignore 文件包含:
# 编译文件
*.class
*.jar
*.war
# IDE文件
.idea/
.vscode/
*.iml
# 日志文件
*.log
# 依赖目录
node_modules/
target/
# 配置文件(包含敏感信息)
application-local.yml
config.properties
6. 冲突处理
# 拉取最新代码
git pull origin develop
# 如果有冲突,解决冲突后
git add .
git commit -m "fix: 解决合并冲突"
7. 撤销操作
撤销工作区修改
git checkout -- <file>
撤销暂存区修改
git reset HEAD <file>
修改最后一次提交
git commit --amend -m "新的提交信息"
回退到指定提交
# 软回退(保留修改)
git reset --soft <commit-hash>
# 硬回退(丢弃修改)
git reset --hard <commit-hash>
常用命令速查
分支操作
# 查看所有分支
git branch -a
# 创建分支
git branch <branch-name>
# 切换分支
git checkout <branch-name>
# 创建并切换分支
git checkout -b <branch-name>
# 删除本地分支
git branch -d <branch-name>
# 删除远程分支
git push origin --delete <branch-name>
提交操作
# 查看状态
git status
# 添加文件
git add <file>
git add .
# 提交
git commit -m "提交信息"
# 查看提交历史
git log
git log --oneline
git log --graph --oneline --all
远程操作
# 查看远程仓库
git remote -v
# 拉取代码
git pull origin <branch-name>
# 推送代码
git push origin <branch-name>
# 获取远程更新(不合并)
git fetch origin
其他实用命令
# 查看差异
git diff
git diff <branch1> <branch2>
# 暂存修改
git stash
git stash pop
# 查看文件历史
git log -- <file>
# 查看某行的修改历史
git blame <file>
版本标签规范
标签命名
使用语义化版本号:v主版本号.次版本号.修订号
示例:
v1.0.0- 初始发布v1.1.0- 新功能v1.1.1- Bug修复v2.0.0- 重大更新
标签操作
# 创建标签
git tag -a v1.0.0 -m "版本1.0.0发布"
# 推送标签
git push origin v1.0.0
# 推送所有标签
git push origin --tags
# 查看标签
git tag
git show v1.0.0
注意事项
- 保护主分支: master/main 分支应该设置保护规则,禁止直接推送
- 定期同步: 开发过程中定期从主分支同步代码,避免冲突积累
- 及时清理: 合并后的分支及时删除,保持仓库整洁
- 提交前测试: 确保代码可以正常编译和运行
- 代码审查: 重要功能必须经过代码审查才能合并
参考资源
最后更新: 2024年