1. 分支定义与命名规则
| 分支类型 | 命名规则 | 环境 | 保护规则 |
|---|---|---|---|
main/master |
main/master |
生产 | 🚫 禁止直接推送 |
test |
test |
测试 | ✅ 需Code Review后合并 |
| 功能分支 | feat/* |
开发 | 🌱 例: feat/user-auth |
| 修复分支 | fix/* |
生产 | 🔥 例: fix/login-error |
2. 新功能开发全流程(feat)
2.1 创建功能分支(IDEA详细步骤)
更新test分支
- 左上角分支列表 → 点击
test→ 选择 Checkout - 右键项目 → Git → Repository → Pull(或
Ctrl+T)
- 左上角分支列表 → 点击
新建功能分支
- 左上角分支列表 → New Branch
- 输入分支名:
feat/功能简写(如feat/order-export) - 确认基于
test分支创建 → 点击 Create
首次推送分支
- 完成首次提交后 → Git → Push
- 勾选 Push current branch to origin → 点击 Push
3. Commit消息合并(多个提交记录合并成一个)
3.1 合并多个Commit(IDEA可视化)
打开Git日志
- 快捷键
Alt+9→ 选择当前功能分支 - 找到最早需要合并的Commit(如初始提交)
- 快捷键
启动交互式Rebase
右键目标Commit → Interactively Rebase from Here
在编辑界面修改指令:
pick 3a4b5c 初始提交 squash 6d7e8f 修复样式问题 squash 9g0h1i 补充单元测试
编辑最终消息
按规范格式编写:
feat(order): 实现订单导出功能 - 新增CSV/Excel双格式支持 - 优化大数据量分页查询 - 修复金额单位转换缺陷
强制推送
终端执行:
git push origin feat/order-export --force-with-lease
4. 紧急修复流程(Fix)
4.1 创建热修复分支
从
main创建分支:- 右下角分支列表 → 选择
main→ Checkout - 右键 → New Branch → 输入
fix/问题描述
- 右下角分支列表 → 选择
修复并测试:
- 必须包含测试用例 → 右键测试类 → Run 'Tests'
双通道合并:
先合并到
main:git checkout main git merge --no-ff fix/login-error再合并到
test:git checkout test git merge fix/login-error
5. 选择性发布生产环境
5.1 临时发布分支操作指南
当前 test 分支中包含多个开发中的功能,但我只需要将自己负责的部分发布到生产环境。为避免影响其他人代码,采用 从 main 分支新建发布分支 + 从 test 中 cherry-pick 我的提交 的方式进行操作。
创建发布分支
- 右下角分支列表 → 选择生产分钟
main→ Checkout - 右键项目 → Git → Branches → New Branch
- 输入:
release/v1.2→ 点击 Create
- 右下角分支列表 → 选择生产分钟
选择需要发布的提交记录
- 打开Git的Log,选择
test分支的提交记录 - 从最下面开始,选择记录,右击
cherry-pick
- 依次
cherry-pic后,对功能进行测试
- 打开Git的Log,选择
合并到main分支
切换回
main分支 → 右键release/v1.2→ Merge into Current打标签:
git tag -a v1.2.0 -m "Release order export" git push origin v1.2.0
6. 冲突解决(IDEA专属方案)
6.1 标准解决流程
更新代码时冲突:
Ctrl+T→ 自动弹出冲突对话框使用三窗格工具:
- 左侧:你的修改
- 右侧:他人修改
- 中间:合并结果(手动编辑)
标记解决:点击 Mark as Resolved → Apply
6.2 Rebase冲突处理
冲突发生时 → IDEA会自动暂停
解决后执行:
git add . git rebase --continue
7. 规范要求
- ✅ 合并到
test前必须运行本地测试 - ❌ 禁止直接向
main提交代码(采用合并的方式) - 🔄 每日工作前先
Ctrl+T更新分支
8. 快捷键速查
| 操作 | 快捷键 |
|---|---|
| 提交代码 | Ctrl+K |
| 推送代码 | Ctrl+Shift+K |
| 拉取更新 | Ctrl+T |