Git flow conventions
Skill toRolex/rolex-skills/skills/engineering/git-flow-conventions
AI 编程技能合集——让 Claude Code 听懂中文、帮你干活。基于 mattpocock/skills 改编并补充了原创工具。
npx -y skills add toRolex/rolex-skills --skill git-flow-conventionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Git Flow 分支管理与提交规范指南。当用户进行分支操作、合并代码、提交 PR/MR、 规划发版、修复线上 Bug、或询问 Git 协作规范时使用。覆盖完整 Git Flow 模型 (develop/feature/release/hotfix)、分支命名规范、commit message 格式、 PR 提交流程和最佳实践。触发场景包括:创建分支、合并代码、git commit、发版、 hotfix、分支命名、PR 描述、代码审查提交。
SKILL.md
7.6 KB, as published. Nobody here has run it
Git Flow 分支管理与提交规范
基于 Vincent Driessen 的 A Successful Git Branching Model, 指导团队按照标准化流程进行分支操作、提交和代码合并。
核心分支模型
master (production) ●───●─────────●────────── ● ──●
\ / \ / /
release ●─● v1.0 ●───● / /
\ / \ / /
develop ●────●────●──────●────●───●────●───────●───●────
\ \ \ / \ \ /
feature ●─┐ ●─┐ ●───● ●─┐ ●───●
│ │ │ │
hotfix │ │ │ ●────────────●
│ │ │
分支类型与命名规范
| 分支类型 | 命名格式 | 来源 | 合并目标 | 说明 |
|---|---|---|---|---|
master | master / main | — | — | 生产环境代码,只接受合并 |
develop | develop | master | — | 主开发分支 |
feature | feature/<功能简述> | develop | develop | 新功能开发 |
release | release/<版本号> | develop | master + develop | 发布准备 |
hotfix | hotfix/<版本号> | master | master + develop | 线上紧急修复 |
命名示例
feature/user-auth— 用户认证功能feature/add-dashboard— 新增仪表盘release/1.2.0— 1.2.0 版本发布hotfix/1.1.1— 修复 1.1.0 线上问题
原则:全小写,英文单词用连字符分隔,简洁描述目的。
操作命令速查
Develop 分支初始化
git branch develop
git push -u origin develop
Feature 分支
开始开发:
git checkout -b feature/<功能名> develop
git push -u origin feature/<功能名>
提交代码:
git add .
git commit -m "feat(<模块>): <简述>"
合并回 develop(使用 --no-ff 保留分支 commit 历史):
git checkout develop
git pull origin develop
git merge --no-ff feature/<功能名>
git push origin develop
清理:
git branch -d feature/<功能名>
git push origin --delete feature/<功能名>
Release 分支
开始发版:
git checkout -b release/<版本号> develop
完成发版:
# 合并到 master
git checkout master
git merge --no-ff release/<版本号>
git push origin master
# 合并回 develop
git checkout develop
git merge --no-ff release/<版本号>
git push origin develop
# 打 tag + 清理
git tag -a v<版本号> -m "Release v<版本号>"
git push --tags
git branch -d release/<版本号>
git push origin --delete release/<版本号>
Hotfix 分支
开始修复:
git checkout -b hotfix/<版本号> master
完成修复:
# 合并到 master
git checkout master
git merge --no-ff hotfix/<版本号>
git push origin master
# 合并回 develop
git checkout develop
git merge --no-ff hotfix/<版本号>
git push origin develop
# 打 tag + 清理
git tag -a v<版本号> -m "Hotfix v<版本号>"
git push --tags
git branch -d hotfix/<版本号>
git push origin --delete hotfix/<版本号>
合并策略
| 策略 | 说明 | 适用场景 |
|---|---|---|
--no-ff | 不使用 fast-forward,保留分支 commit 历史 | 默认推荐,保留完整开发记录 |
--squash | 把多次分支 commit 压缩为一次 | 功能分支 commit 杂乱时 |
Commit Message 规范
采用 Conventional Commits 格式:
<type>(<scope>): <subject>
[optional body]
[optional footer]
Type 类型
| Type | 说明 | 示例 |
|---|---|---|
feat | 新功能 | feat(auth): add JWT token refresh |
fix | Bug 修复 | fix(api): handle null user profile |
docs | 文档变更 | docs(readme): update install guide |
style | 格式调整(不影响逻辑) | style(layout): reorder imports |
refactor | 重构 | refactor(db): extract query builder |
perf | 性能优化 | perf(list): add virtual scrolling |
test | 测试相关 | test(auth): add 2FA unit tests |
chore | 构建/工具变更 | chore(deps): bump axios to 1.6 |
ci | CI 配置 | ci: add GitHub Actions workflow |
revert | 回滚 | revert: undo feat(user-search) |
规则
- Subject 用现在时、首字母小写、不加句号
- 中文项目 scope 可用中文,如
feat(登录): 增加验证码校验 - Body 解释 为什么 这个变更是必要的
- Footer 引用关联 issue:
Closes #123
PR / MR 规范
分支准备
提交 PR 前必须:
- 从目标分支 rebase 或 merge 最新代码
- 确保 CI 通过
- 自己 Review 一遍 diff
# Rebase 到最新 develop
git fetch origin
git rebase origin/develop
# 解决冲突后
git push --force-with-lease origin feature/<功能名>
PR 描述模板
## 变更说明
<一句话描述做了什么>
## 变更类型
- [ ] 新功能 (feat)
- [ ] Bug 修复 (fix)
- [ ] 重构 (refactor)
- [ ] 其他
## 测试
- [ ] 单元测试通过
- [ ] 手动验证通过
## 关联 Issue
Closes #<编号>
合并策略选择
| 策略 | 适用场景 |
|---|---|
--no-ff (non-fast-forward) | 默认推荐。保留分支历史,可追溯功能开发过程 |
--squash | 功能分支 commit 杂乱时,压缩成一个干净 commit |
--ff-only | 简单修复,分支历史已是线性时 |
Release Note 格式
每次发版必须使用规范的 Release Note 格式,通过 gh release create 或 gh release edit 发布。
格式参考:见 references/release-note-format.md
快速要点:
- 固定分类:新功能 / 问题修复 / 文档 / 测试 / 杂项
- 无变更时写"无",不可省略
- 摘要 2-4 句概括核心变更
- 升级指南给出具体命令
- 尾部带
compare链接
创建命令:
gh release create v<版本号> --title "v<版本号>: <简述>" --notes "<完整 note>" --target main
关键红线
- 禁止 直接在
master/main上修改代码 - 禁止 直接在
develop上开发功能,必须走 feature 分支 - 禁止 在 Release 分支打好后从 develop 合入新功能
- 必须 使用
--no-ff合并 feature/release/hotfix 到主分支 - 必须 每次 Release/Hotfix 后在 master 上打 tag
- 必须 删除已合并的 feature/release/hotfix 远程分支
简化版工作流(小型团队)
如果完整 Git Flow 太重,可简化为:
main ●────────────●─────●
\ / /
feature ●──●──●──● /
\ /
bugfix ●───────────●
main— 生产分支feature/<名称>— 功能分支,合入 mainbugfix/<名称>— 修复分支,合入 main
不区分 release/hotfix,直接在 main 上打 tag 发版。