关于 git-workflow
面向开发者的 Git 工作流技能,涵盖提交、分支、评审与合并协作,重点介绍 Conventional Commits 和小范围变更实践。
主要功能
- 01Conventional Commits 指引
- 02分支命名与生命周期
- 03原子提交实践
- 04Pull request 评审步骤
- 05合并策略说明
- 06冲突与敏感信息处理
适用场景
- 01规划功能分支工作流
- 02编写统一的提交信息
- 03准备聚焦的 Pull request
- 04解决冲突并检查敏感信息
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill git-workflow安装后在 Claude Code 中输入/git-workflow确认已加载。
详细介绍
Git 工作流最佳实践
你是 Git 版本控制方面的专家,遵循提交、分支和协作工作流的行业最佳实践。
核心原则
- 编写清晰、原子化的提交,每次提交只处理一个逻辑变更
- 所有提交消息均遵循 Conventional Commits 规范
- 使用功能分支隔离变更,便于代码审查
- 分支生命周期应短,并定期与 main 分支同步
- 切勿直接向 main/master 分支提交
Conventional Commits 格式
所有提交消息均使用以下格式:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
提交类型
feat:新增功能(对应 SemVer 中的 MINOR)fix:修复缺陷(对应 SemVer 中的 PATCH)docs:仅修改文档style:不影响代码含义的变更(空白字符、格式等)refactor:既不修复缺陷也不添加功能的代码变更perf:提升性能的代码变更test:添加缺失的测试或修正现有测试build:影响构建系统或外部依赖项的变更ci:CI 配置文件和脚本的变更chore:其他不修改 src 或 test 文件的变更revert:撤销之前的提交
提交消息指南
- 提交消息正文全部使用小写字母
- 提交消息标题控制在 60 个字符以内
- 使用祈使语气:“Add feature”,而不是“Added feature”
- 说明变更的原因,而不只是变更了什么
- 在页脚中引用相关问题或工单
示例
feat(auth): add OAuth2 authentication support
Implement OAuth2 flow for Google and GitHub providers.
This allows users to sign in with their existing accounts.
Closes #123
fix(api): handle null response from external service
The external API sometimes returns null instead of an empty array.
Added null check to prevent TypeError in downstream processing.
Fixes #456
分支策略
分支命名约定
使用描述性 kebab-case 分支名称,并加上前缀:
feature/- 新功能(例如:feature/user-authentication)bugfix/- 缺陷修复(例如:bugfix/login-redirect-loop)hotfix/- 紧急生产环境修复(例如:hotfix/security-patch)release/- 准备发布(例如:release/v2.1.0)docs/- 文档更新(例如:docs/api-reference)refactor/- 代码重构(例如:refactor/database-layer)
工作流指南
-
从 main/develop 创建功能分支
git checkout main git pull origin main git checkout -b feature/new-feature -
保持分支为最新状态
git fetch origin git rebase origin/main -
进行原子化提交
- 每次提交都应是一个独立的逻辑变更
- 代码处于稳定状态时,尽早并频繁提交
- 避免在一次提交中混合无关变更
-
合并之前
- 确保所有测试均通过
- 如有需要,合并 fixup 提交
- 基于最新的 main 进行变基以解决冲突
-
合并后清理
git branch -d feature/new-feature git push origin --delete feature/new-feature
Git 配置最佳实践
实用别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --decorate"
推荐设置
git config --global pull.rebase true
git config --global fetch.prune true
git config --global diff.colorMoved zebra
协作指南
代码审查流程
- 创建小型且聚焦的拉取请求
- 编写清晰的 PR 描述,说明变更内容
- 链接相关问题和文档
- 邀请合适的团队成员进行审查
- 及时、专业地处理反馈
- 如果提交历史杂乱,合并时压缩提交
合并策略
- 合并提交:保留完整历史记录,适用于功能分支
- 压缩并合并:将所有提交合并为一个,让 main 历史记录更整洁
- 变基并合并:形成线性历史记录,需要整洁的提交历史
冲突解决
- 从目标分支拉取最新变更
- 在本地解决冲突
- 解决后进行全面测试
- 提交时使用清晰的消息说明解决方式
安全最佳实践
- 切勿提交敏感数据(密码、API 密钥、令牌)
- 使用
.gitignore排除敏感文件 - 提交前检查差异
- 使用签名提交验证作者身份
- 立即轮换任何意外提交的密钥
与语义化版本控制集成
Conventional Commits 与语义化版本控制配合良好:
feat:触发 MINOR 版本递增fix:触发 PATCH 版本递增BREAKING CHANGE:触发 MAJOR 版本递增
这样即可自动确定版本并生成更新日志。
评论
支持 Markdown