这是 Git 最常见的工作流之一。
假设你当前项目结构如下:
git branch
* main
当前在 main 分支上开发。
1. 创建新分支
例如要开发用户登录功能:
git branch feature/login
查看:
git branch
输出:
feature/login
* main
只是创建了,还没切换。
2. 创建并切换(最常用)
推荐直接:
git switch -c feature/login
或者旧写法:
git checkout -b feature/login
效果:
git branch
输出:
* feature/login
main
此时所有修改都在新分支进行。
3. 开发功能
修改代码:
vim login.py
提交:
git add .
git commit -m "feat: add login module"
此提交只存在于:
feature/login
不会影响:
main
4. 切回主分支
git switch main
查看:
git branch
输出:
feature/login
* main
5. 合并功能分支
开发完成:
git switch main
git merge feature/login
Git 会把:
feature/login
的提交合并到:
main
6. 删除功能分支
确认合并后:
git branch -d feature/login
强制删除:
git branch -D feature/login
实际项目推荐命名
很多团队会这样:
feature/user-login
feature/payment
feature/order-api
bugfix/login-error
bugfix/payment-timeout
hotfix/security-patch
release/v1.2.0
例如:
git switch -c feature/llm-agent
git switch -c feature/jellyfin-sync
git switch -c bugfix/docker-compose
推送到 GitHub
本地创建后:
git push -u origin feature/login
第一次加 -u:
git push -u origin feature/login
以后:
git push
即可。
查看远程分支:
git branch -r
查看所有分支:
git branch -a
现代 Git 开发流程(推荐)
# 更新主分支
git switch main
git pull
# 创建功能分支
git switch -c feature/new-function
# 开发
git add .
git commit -m "feat: xxx"
# 推送
git push -u origin feature/new-function
# 提交 PR
# 合并后删除分支
git switch main
git pull
git branch -d feature/new-function
几个最重要的命令记住即可:
git branch # 查看分支
git switch 分支名 # 切换分支
git switch -c 分支名 # 创建并切换
git merge 分支名 # 合并分支
git branch -d 分支名 # 删除分支
git push -u origin 分支名 # 推送分支
如果你正在用 Codex、Claude Code 或 Cursor 做开发,我更推荐采用 Git Flow 简化版:
main
├── feature/auth
├── feature/ui
├── feature/api
└── feature/docs
每个功能一个独立分支,AI 修改代码时只在对应 feature 分支工作,测试通过后再合并到 main。这样即使 AI 改坏代码,也只影响当前功能分支,不会污染主线。
更多内容请参考官方pdf