Git 工作流最佳实践


良好的 Git 工作流能显著提升团队协作效率。本文整理了几种主流模式与实用技巧。

分支策略

主流分支模型大致分为三种:

模型适用场景复杂度
GitHub Flow持续部署、小团队
Git Flow版本化发布、大团队
Trunk-based高频发布、成熟 CI/CD

对于个人博客或小型项目,GitHub Flow 最为简洁:只有 main 分支和功能分支,合并即发布。

常用命令速查

初始化与克隆

git init                    # 初始化新仓库
git clone <url>             # 克隆远程仓库
git clone <url> --depth 1   # 浅克隆,只取最新一次提交

日常提交

git status                  # 查看当前状态
git add -p                  # 交互式暂存(按块选择)
git commit -m "feat: 新增登录功能"
git push origin main

撤销操作

# 撤销工作区的修改(不可恢复)
git checkout -- <file>

# 撤销上一次提交,保留修改到工作区
git reset HEAD~1

# 撤销已推送的提交(生成新提交,安全)
git revert <commit-hash>

Commit Message 规范

推荐使用 Conventional Commits 格式:

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

[optional body]
[optional footer]

常用 type:

  • feat — 新功能
  • fix — Bug 修复
  • docs — 文档变更
  • refactor — 重构(不涉及功能或 Bug)
  • chore — 构建/工具链变更

示例:

feat(auth): 添加 OAuth2 登录支持

支持 GitHub 和 Google 两种第三方登录方式。
关闭 #42

实用技巧

快速切换到上一个分支

git checkout -

储存临时修改

git stash           # 储存当前修改
git stash pop       # 恢复最近的储存
git stash list      # 查看所有储存

查找引入 Bug 的提交

git bisect start
git bisect bad          # 当前版本有 Bug
git bisect good v1.0    # v1.0 正常
# Git 自动二分查找,每次标记 good/bad
git bisect reset        # 查找结束,恢复 HEAD

提示: git bisect 结合自动化测试脚本使用效果最好:git bisect run npm test

.gitignore 模板

# 依赖
node_modules/
.pnp.js

# 构建输出
dist/
build/
.next/

# 环境变量(绝不提交)
.env
.env.local

# 编辑器
.vscode/
.idea/
*.swp

# 系统文件
.DS_Store
Thumbs.db

掌握这些基础之后,建议进一步了解 git rebase(变基)和 git worktree(多工作区),它们在处理复杂分支场景时非常实用。