mcpField
G
git-workflow

git-workflow

github.com/mindrally开发289837 次安装3 周前更新
代码仓库

关于 git-workflow

面向开发者的 Git 工作流技能,涵盖提交、分支、评审与合并协作,重点介绍 Conventional Commits 和小范围变更实践。

主要功能

  1. 01Conventional Commits 指引
  2. 02分支命名与生命周期
  3. 03原子提交实践
  4. 04Pull request 评审步骤
  5. 05合并策略说明
  6. 06冲突与敏感信息处理

适用场景

  1. 01规划功能分支工作流
  2. 02编写统一的提交信息
  3. 03准备聚焦的 Pull request
  4. 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)
工作流指南
  1. 从 main/develop 创建功能分支

    git checkout main
    git pull origin main
    git checkout -b feature/new-feature
    
  2. 保持分支为最新状态

    git fetch origin
    git rebase origin/main
    
  3. 进行原子化提交

    • 每次提交都应是一个独立的逻辑变更
    • 代码处于稳定状态时,尽早并频繁提交
    • 避免在一次提交中混合无关变更
  4. 合并之前

    • 确保所有测试均通过
    • 如有需要,合并 fixup 提交
    • 基于最新的 main 进行变基以解决冲突
  5. 合并后清理

    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

协作指南

代码审查流程
  1. 创建小型且聚焦的拉取请求
  2. 编写清晰的 PR 描述,说明变更内容
  3. 链接相关问题和文档
  4. 邀请合适的团队成员进行审查
  5. 及时、专业地处理反馈
  6. 如果提交历史杂乱,合并时压缩提交
合并策略
  • 合并提交:保留完整历史记录,适用于功能分支
  • 压缩并合并:将所有提交合并为一个,让 main 历史记录更整洁
  • 变基并合并:形成线性历史记录,需要整洁的提交历史
冲突解决
  1. 从目标分支拉取最新变更
  2. 在本地解决冲突
  3. 解决后进行全面测试
  4. 提交时使用清晰的消息说明解决方式

安全最佳实践

  • 切勿提交敏感数据(密码、API 密钥、令牌)
  • 使用 .gitignore 排除敏感文件
  • 提交前检查差异
  • 使用签名提交验证作者身份
  • 立即轮换任何意外提交的密钥

与语义化版本控制集成

Conventional Commits 与语义化版本控制配合良好:

  • feat:触发 MINOR 版本递增
  • fix:触发 PATCH 版本递增
  • BREAKING CHANGE:触发 MAJOR 版本递增

这样即可自动确定版本并生成更新日志。

评论

支持 Markdown