Article

从 main 分支开始,创建功能分支、开发、提交,再合并回主分支的一套常用 Git 工作流。

2026/7/5#git#教程#工作流

这是 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