Git 协作流程
一、准备环境
1. 安装 Git
去 https://git-scm.com/downloads 下载对应系统的安装包,一路下一步装好。
安装完成后,打开终端(Windows 用 Git Bash,Mac/Linux 用系统终端),验证:
git --version
能看到版本号就说明装好了。
2. 注册 GitHub 账号
去 https://github.com 注册一个账号。
3. 配置 Git 身份
装完 Git 后,先告诉它你是谁(每次提交代码会带上你的名字):
git config --global user.name "你的名字"
git config --global user.email "你的GitHub邮箱"
4. 配置 SSH 连接 GitHub
每次推送代码都要输密码很烦,配置 SSH 密钥后就不用了。
5. 接受组长邀请
组长会在 GitHub 仓库的 Settings → Collaborators 里邀请你。
你会收到一封邮件,点里面的链接接受邀请。也可以直接访问仓库地址,会看到邀请提示。
接受后你就有了这个仓库的推送权限。
二、克隆仓库
命令行方式
# 克隆仓库到本地(SSH 方式)
git clone git@github.com:sokx6/Nook.git
# 进入项目目录
cd Nook
VS Code 方式
- 打开 VS Code
- 按
Ctrl+Shift+P(Mac 是Cmd+Shift+P),输入git clone - 选
Git: Clone - 粘贴仓库地址:
git@github.com:sokx6/Nook.git - 选一个本地文件夹存放
- 克隆完成后 VS Code 会问是否打开,点「打开」
三、分支策略
每人一个分支,代码审批后先合并到 dev,测试通过后再合并到 main:
main(最终发布版本,组长维护)
└── dev(开发集成分支,组长审批后合并到 main)
├── backend-a(成员 A)
├── backend-b(成员 B)
├── frontend-c(成员 C)
└── frontend-d(成员 D)
- 你的分支:你写代码的地方,随便改
- dev 分支:所有人的代码汇总到这里,组长审批你的 PR 后合并到 dev
- main 分支:dev 测试通过后,组长再合并到 main,main 随时能跑
创建自己的分支
克隆完成后,第一件事是创建自己的分支:
命令行:
# 从 dev 创建并切换到你的分支
git checkout -b backend-a
VS Code:
- 看 VS Code 左下角,会显示当前分支名(通常是
dev) - 点一下分支名
- 在顶部弹出的输入框里输入你的分支名(比如
backend-a) - 选
Create new branch: backend-a
四、日常开发流程
每天重复以下步骤:
第 1 步:拉取 dev 最新代码
每天开始干活前,先把 dev 的最新代码拉下来,保证自己在最新版本上开发。
命令行:
# 先切到 dev
git checkout dev
# 拉取远程 dev 的最新代码
git pull origin dev
# 切回自己的分支
git checkout backend-a
# 把 dev 的更新合并到你的分支
git merge dev
VS Code:
- 点左下角分支名,切换到
dev - 点左边栏第三个图标(源代码管理,图标像分叉的树)
- 点「…」→ 「拉取」(Pull)
- 切回自己的分支(点左下角分支名切换)
- 点「…」→ 「合并分支」→ 选
dev
第 2 步:写代码
正常写代码,该改文件改文件,该建文件建文件。
第 3 步:提交代码
写完一个功能后,提交到你的分支。
命令行:
# 查看改了哪些文件
git status
# 把所有改动加入暂存区
git add .
# 提交,写清楚做了什么
git commit -m "完成 db.py 数据库 CRUD 函数"
# 推送到远程你的分支
git push origin backend-a
VS Code(推荐,图形化更直观):
- 点左边栏第三个图标(源代码管理)
- 看到改动的文件列表:
- 绿色 U(Untracked):新文件,还没被 Git 跟踪
- 黄色 M(Modified):改过的文件
- 红色 D(Deleted):删掉的文件
- 把要提交的文件点一下
+号(暂存),或者全选点+ - 在上方输入框写提交信息,比如:
完成 db.py 数据库 CRUD 函数 - 点「提交」按钮(打勾图标),或按
Ctrl+Enter - 点「同步更改」或「推送」按钮,把代码推到 GitHub
VS Code 源代码管理面板详解
源代码管理面板
├── 消息输入框 ← 在这里写提交信息
├── 提交按钮(勾) ← 点这个提交
├── 刷新按钮 ← 刷新文件状态
├── ... 菜单 ← 更多操作
│ ├── 拉取 (Pull) ← 从远程拉最新代码
│ ├── 推送 (Push) ← 推送到远程
│ ├── 同步 (Sync) ← 先拉再推
│ ├── 合并分支 ← 把别的分支合并进来
│ ├── 检出到... ← 切换分支
│ └── 丢弃所有更改 ← 慎用,会丢代码
├── 暂存的更改 ← 已 git add 的文件
│ └── 文件列表 ← 每个文件可以点 - 撤回
├── 更改 ← 改了但还没 add 的文件
│ └── 文件列表 ← 每个文件可以点 + 暂存
└── 文件内容 ← 点文件可以看改了什么(diff 视图)
查看改动内容: 点一个改过的文件,VS Code 会打开 diff 视图:左边是旧代码(红色背景表示删除),右边是新代码(绿色背景表示新增),一目了然。
五、发起 Pull Request(PR)
当你的一个功能写完了,想合并到 dev 时:
在 GitHub 网页上操作
- 打开仓库网页
- 点
Pull requests标签 - 点
New pull request - 左边选
dev(目标分支),右边选你的分支(比如backend-a) - 点
Create pull request - 写标题和说明(比如「完成 db.py,包含建表和 7 个 CRUD 函数」)
- 点
Create pull request提交
组长审查
组长会收到通知,在 GitHub 上审查你的代码:
- 可以逐文件看改了什么
- 可以在具体行上写评论
- 没问题 → 点
Merge pull request合并到 dev - 有问题 → 在 PR 里评论,你改完再推送(PR 会自动更新)
dev 到 main
dev 分支上的代码测试通过后,组长会在 GitHub 上发起一个 dev → main 的 PR,审查无误后合并到 main。main 分支随时保持可运行状态。
你改完代码后更新 PR
如果组长审查后让你改,你不需要重新提 PR:
# 在你的分支上继续改
git add .
git commit -m "修复 xxx 问题"
git push origin backend-a
PR 会自动更新,组长再审查一次。
六、冲突处理
当你的分支和 dev 有冲突时(比如两个人改了同一个文件),合并或 PR 时会报冲突。
命令行解决
# 合并 dev 时出现冲突
git merge dev
# Git 会告诉你哪些文件冲突了
git status
# 打开冲突文件,会看到:
<<<<<<< HEAD
你的代码
=======
dev 的代码
>>>>>>> dev
# 手动编辑:删掉冲突标记,保留正确的代码
# 改完后:
git add 冲突文件
git commit -m "解决冲突"
VS Code 解决(推荐)
VS Code 在遇到冲突时会提供按钮帮你选:
- 合并时出现冲突,VS Code 会弹出提示
- 打开冲突文件,每个冲突处会显示:
Accept Current Change(用你的代码)Accept Incoming Change(用 dev 的代码)Accept Both Changes(两边都保留)Compare Changes(对比查看)
- 选一个,或者手动编辑
- 改完后点「提交」完成合并
七、常见问题
Q: 推送时报错 permission denied
你没接受组长的邀请,或者用错了 GitHub 账号。去仓库网页看看自己是不是 Collaborator。
Q: 推送时报错 rejected - non-fast-forward
远程有你本地没有的更新。先 git pull 拉下来再推。
VS Code: 点「同步」按钮,它会自动先拉再推。
Q: 不小心提交了不该提交的文件
# 从暂存区移除(文件还在,只是不提交)
git rm --cached 文件名
# 如果已经提交了,撤销最后一次提交(代码不丢)
git reset --soft HEAD~1
Q: 想撤销今天的所有改动
# 慎用!这会丢掉所有未提交的改动
git checkout .
VS Code: 源代码管理面板 → 「…」→ 「丢弃所有更改」
Q: 想回到之前的某个版本
# 查看提交历史
git log --oneline
# 回到某个版本(不影响历史)
git checkout 提交哈希前几位
VS Code: 源代码管理面板 → 「…」→ 「Git: View History」→ 选一个版本点回去。
八、VS Code Git 速查
| 操作 | VS Code 方式 |
|---|---|
| 切换分支 | 点左下角分支名 |
| 查看改了什么 | 左边栏源代码管理图标,点文件看 diff |
| 暂存文件(add) | 文件旁的 + 号 |
| 取消暂存 | 文件旁的 - 号 |
| 提交(commit) | 写消息 → Ctrl+Enter |
| 推送(push) | 点「同步更改」或「推送」 |
| 拉取(pull) | 源代码管理 → 「…」→ 「拉取」 |
| 合并分支 | 源代码管理 → 「…」→ 「合并分支」 |
| 查看历史 | 源代码管理 → 「…」→ 「View Git Log」 |
| 解决冲突 | 打开冲突文件,点 Accept 按钮选择 |
| 新建分支 | 点左下角分支名 → 输入新名字 |
九、每日流程总结
1. git checkout dev && git pull ← 拉 dev 最新代码
2. git checkout 你的分支 ← 切回自己分支
3. git merge dev ← 合并 dev 更新
4. 写代码 ← 正常开发
5. git add . && git commit -m "xxx" ← 提交
6. git push origin 你的分支 ← 推送
7. 在 GitHub 发 PR(你的分支 → dev) ← 请组长审批
8. 组长审批后合并到 dev ← dev 测试通过后组长再合并到 main
VS Code 对应操作:切分支 → 拉取 → 合并 → 写代码 → 暂存 → 提交 → 推送 → 网页提 PR。