GitFlow命令快速参考

GitFlow命令快速参考

#tech / ops / git #type / howto #status / growing

Git Flow 快速参考

📋 分支命名规范

分支类型命名格式示例基于合并到
主分支mainmain--
开发分支devdev--
功能分支feature/<描述>feature/add-goal-folderdevdev
Bug修复bugfix/<描述>bugfix/fix-login-errordevdev
热修复hotfix/<描述>hotfix/critical-fixmainmain + dev
发布分支release/<版本>release/v1.2.0devmain + dev

🚀 常用工作流

开发新功能

# 1️⃣ 创建功能分支
git checkout dev
git pull origin dev
git checkout -b feature/my-feature

# 2️⃣ 开发并提交
git add .
git commit -m "feat: add my feature"

# 3️⃣ 推送并创建 PR
git push origin feature/my-feature
# 在 GitHub 创建 PR: feature/my-feature -> dev

# 4️⃣ 合并后清理
git checkout dev
git pull origin dev
git branch -d feature/my-feature
git push origin --delete feature/my-feature

修复 Bug

# 从 dev 创建
git checkout dev
git pull origin dev
git checkout -b bugfix/fix-issue

# 修复、提交、推送
git add .
git commit -m "fix: resolve issue"
git push origin bugfix/fix-issue
# PR: bugfix/fix-issue -> dev

紧急热修复

# 从 main 创建
git checkout main
git pull origin main
git checkout -b hotfix/urgent-fix

# 修复、提交、推送
git add .
git commit -m "fix: urgent issue"
git push origin hotfix/urgent-fix

# 创建两个 PR:
# - hotfix/urgent-fix -> main
# - hotfix/urgent-fix -> dev

# 在 main 打 tag
git checkout main
git pull origin main
git tag -a v1.2.1 -m "Hotfix v1.2.1"
git push origin v1.2.1

发布新版本

# 1️⃣ 创建 release 分支
git checkout dev
git pull origin dev
git checkout -b release/v1.3.0

# 2️⃣ 更新版本号和文档
# 编辑 package.json, CHANGELOG.md 等
git commit -am "chore: bump version to 1.3.0"
git push origin release/v1.3.0

# 3️⃣ 创建 PR 到 main 和 dev
# PR1: release/v1.3.0 -> main
# PR2: release/v1.3.0 -> dev

# 4️⃣ 合并后打 tag
git checkout main
git pull origin main
git tag -a v1.3.0 -m "Release v1.3.0"
git push origin v1.3.0

💬 提交信息格式

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

<body>

<footer>

提交类型

类型描述示例
feat新功能feat: add user authentication
fixBug修复fix: resolve login timeout
docs文档docs: update API documentation
style格式style: format code with prettier
refactor重构refactor: simplify auth logic
perf性能perf: optimize database queries
test测试test: add unit tests for auth
chore构建chore: update dependencies
ciCI/CDci: add GitHub Actions workflow

示例

# 简单提交
git commit -m "feat: add goal folder support"

# 带作用域
git commit -m "fix(auth): resolve token expiration issue"

# 多行提交
git commit -m "feat(goal): add goal folder support

- Added database table
- Implemented API endpoints
- Created UI components

Closes #123"

# Breaking change
git commit -m "feat(api)!: change response format

BREAKING CHANGE: Response now uses 'data' wrapper"

🔧 常用命令

分支操作

# 查看所有分支
git branch -a

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

# 切换分支
git checkout dev

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

# 删除远程分支
git push origin --delete feature/old-feature

# 更新远程分支列表
git fetch --prune

同步操作

# 拉取最新代码
git pull origin dev

# 从上游同步
git fetch origin
git rebase origin/dev

# 推送代码
git push origin feature/my-feature

# 强制推送(rebase后)
git push -f origin feature/my-feature

暂存操作

# 暂存当前更改
git stash

# 查看暂存列表
git stash list

# 恢复最新暂存
git stash pop

# 恢复指定暂存
git stash apply stash@{0}

# 删除暂存
git stash drop stash@{0}

# 清空所有暂存
git stash clear

撤销操作

# 撤销工作区修改
git checkout -- <file>

# 撤销暂存区
git reset HEAD <file>

# 撤销最后一次提交(保留更改)
git reset --soft HEAD~1

# 撤销最后一次提交(丢弃更改)
git reset --hard HEAD~1

# 撤销已推送的提交
git revert <commit-hash>
git push origin <branch>

查看操作

# 查看状态
git status

# 查看提交历史
git log --oneline --graph --all

# 查看差异
git diff
git diff --staged
git diff <branch1>..<branch2>

# 查看远程仓库
git remote -v
git remote show origin

⚠️ 注意事项

❌ 禁止操作

  • ❌ 直接在 maindev 上开发
  • ❌ 强制推送到 maindev
  • ❌ 合并未经审查的代码
  • ❌ 提交大文件或敏感信息
  • ❌ 修改已推送的提交历史(除非在 feature 分支)

✅ 推荐做法

  • ✅ 功能完成前频繁提交
  • ✅ 推送前先拉取最新代码
  • ✅ PR 前自己先检查一遍
  • ✅ 及时删除已合并的分支
  • ✅ 遇到冲突及时解决
  • ✅ 重要改动写清楚提交信息

🆘 常见问题

分支落后了怎么办?

git checkout feature/my-feature
git fetch origin
git rebase origin/dev
# 如有冲突,解决后:
git add .
git rebase --continue
git push -f origin feature/my-feature

提交到错误分支了?

# 1. 在正确的分支上 cherry-pick
git checkout correct-branch
git cherry-pick <commit-hash>

# 2. 在错误的分支上撤销
git checkout wrong-branch
git reset --hard HEAD~1
git push -f origin wrong-branch

PR 有冲突怎么办?

# 1. 在本地分支上更新
git checkout feature/my-feature
git fetch origin
git rebase origin/dev

# 2. 解决冲突
# 编辑冲突文件
git add <resolved-files>
git rebase --continue

# 3. 强制推送
git push -f origin feature/my-feature

想要撤销 PR 怎么办?

# 如果 PR 已合并到 dev
git checkout dev
git pull origin dev
git revert <merge-commit-hash>
git push origin dev

# 如果 PR 未合并
# 直接在 GitHub 上关闭 PR

📚 相关文档


记住:

  • 🔄 从 dev 创建 feature 分支
  • ✅ 通过 PR 合并
  • 🧹 合并后删除分支
  • 📝 写清楚提交信息
创建于 2025/1/1 更新于 2026/5/27