果黑

无聊碎碎念

Git 工作流程最佳实践

开发工具

Git 工作流程最佳实践

Git 是现代软件开发中不可或缺的版本控制工具。本文将总结一些实用的 Git 工作流程和最佳实践,帮助团队更好地协作开发。

分支管理策略

1. 主分支

  • main/master: 主分支,保持稳定
  • develop: 开发分支,用于集成功能

2. 功能分支

  • feature/*: 新功能开发
  • bugfix/*: 问题修复
  • hotfix/*: 紧急修复
  • release/*: 版本发布

提交规范

1. 提交信息格式

<type>(<scope>): <subject>

<body>

<footer>

2. 类型说明

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建过程或辅助工具的变动

3. 示例

feat(auth): 添加用户登录功能

- 实现邮箱密码登录
- 添加记住登录状态
- 集成 JWT 认证

Closes #123

工作流程

1. 功能开发流程

# 1. 创建功能分支
git checkout -b feature/user-login

# 2. 开发功能
git add .
git commit -m "feat(auth): 添加登录表单"

# 3. 同步主分支
git checkout develop
git pull
git checkout feature/user-login
git rebase develop

# 4. 提交合并请求
git push origin feature/user-login

2. 代码审查

  • 使用 Pull Request/Merge Request
  • 确保 CI 通过
  • 至少一个审查者批准
  • 解决所有评论

3. 版本发布

# 1. 创建发布分支
git checkout -b release/1.0.0

# 2. 版本号更新
# 3. 更新 CHANGELOG
# 4. 提交更改
git commit -m "chore(release): 发布 1.0.0 版本"

# 5. 合并到主分支
git checkout main
git merge release/1.0.0
git tag -a v1.0.0 -m "版本 1.0.0"

# 6. 合并到开发分支
git checkout develop
git merge release/1.0.0

常用命令

1. 分支操作

# 查看分支
git branch -a

# 创建并切换分支
git checkout -b feature/new-feature

# 删除分支
git branch -d feature/old-feature

2. 提交操作

# 暂存更改
git stash

# 应用暂存
git stash pop

# 修改最后一次提交
git commit --amend

3. 远程操作

# 更新远程分支信息
git fetch --prune

# 强制更新本地分支
git reset --hard origin/develop

# 推送标签
git push --tags

最佳实践

  1. 保持提交原子性

    • 每个提交只做一件事
    • 提交信息清晰明确
  2. 定期同步主分支

    • 避免分支差异过大
    • 及时解决冲突
  3. 使用 Git 钩子

    • 提交前代码检查
    • 提交信息格式验证
  4. 保护重要分支

    • 设置分支保护规则
    • 强制代码审查
    • 禁止直接推送

常见问题解决

  1. 撤销提交
# 撤销最后一次提交
git reset --soft HEAD^

# 撤销远程提交
git revert <commit-hash>
  1. 解决冲突
# 查看冲突文件
git status

# 解决冲突后
git add .
git commit -m "fix: 解决合并冲突"

总结

良好的 Git 工作流程可以:

  • 提高团队协作效率
  • 保持代码质量
  • 方便追踪变更
  • 简化版本管理

建议根据团队规模和项目需求,选择合适的工作流程,并严格执行。