【Git】项目协作开发教程
1 前言
近期,我在 GitHub 平台参与项目协同开发的过程中,系统掌握了规范的 Git 操作流程。从遵循 Conventional Commit 规范撰写提交信息,到将代码提交至 Fork 后的个人仓库,再到通过 Pull Request(PR)向上游原仓库贡献代码,每一个环节都经过实践打磨,逐步形成了标准化的操作习惯。为了梳理所学、方便后续查阅,同时也为有类似协作需求的开发者提供参考,特此整理这份 Git 操作指南,涵盖从基础配置到协作收尾的全流程,力求步骤清晰、重点突出、可直接使用。
2 Git 基础全局配置
在使用 Git 前,需先配置全局用户名和邮箱,这是提交代码时的身份标识,仅需配置一次。
1 | # 配置全局用户名(替换为你的 GitHub 用户名) |
2.1 验证配置是否成功
执行以下命令,查看已配置的用户名和邮箱:
1 | # 查看用户名 |
注意:请务必确认好本地 Git 用户配置是否生效。
小故事😢:我在实验室电脑执行 git push、提交 PR 时,由于疏忽检查,提交记录带入电脑里留存的其他用户信息,导致 pr 时对方被设为共同作者,并且在我 fork 的仓库中显示上传 commit的用户并不是自己。所以一定要提前核对清楚本地个人账号信息,不然你的辛苦付出最后反倒会为他人做了嫁衣。

注:pr 里面多了个不知名的 xxxu680
3 Git 代理配置(解决 GitHub 下载慢)
若访问 GitHub 速度缓慢,可配置 7897 端口代理(本地常用代理端口),提升克隆、拉取代码的效率。

3.1 设置 7897 端口代理
适用于 http/https 协议下载 GitHub
1 | # 配置 HTTP 代理 |
3.2 验证代理是否生效
1 | # 查看 HTTP 代理 |

3.3 取消代理(备用)
若无需代理,可执行以下命令清除配置:
1 | # 取消 HTTP 代理 |
4 Fork 仓库与本地初始化
4.1 Fork 上游仓库
以我参与开发的项目为例:在 GitHub 上将目标仓库(如 jihe520/MathModelAgent)Fork 到自己的账号下,生成个人副本(如 HP-Patience/MathModelAgent)。

4.2 本地初始化仓库
4.2.1 方式 1:下载 ZIP 压缩包后初始化
-
下载 Fork 后仓库的
.zip压缩包,解压到本地目录; -
进入目录,执行
git init初始化 Git 仓库; -
关联自己的远程仓库(origin) 和上游原仓库(upstream):
1 | # 关联自己的 Fork 仓库(origin) |
-
拉取最新代码到本地:
1 | git pull origin main |
4.2.2 方式 2:直接 Git Clone(推荐)
git clone 会自动执行 git init + 关联远程仓库 + 下载完整最新代码,无需手动初始化和拉取:
1 | # 克隆自己的 Fork 仓库到本地 |

5 分支开发与代码提交
5.1 创建开发分支
永远不要直接在 main 分支修改代码,需创建独立开发分支:
1 | # 创建并切换到 myfeat 分支(分支名可自定义) |
5.2 修改代码与提交
在 myfeat 分支完成代码修改后,提交变更:
1 | # 添加所有修改文件 |
注意:请使用 conventional commit 进行提交内容说明
6 同步上游更新与推送代码
6.1 场景 1:上游仓库无新提交
若原仓库(upstream)未更新代码,直接将本地分支推送到自己的远程仓库:
1 | # 将 myfeat 分支推送到自己的 GitHub 仓库 |
6.2 场景 2:上游仓库有新提交
若原仓库已更新,需先同步上游代码,再推送,避免冲突:
-
切换回 main 分支,拉取上游最新代码:
1 | git checkout main |
-
切换回开发分支,将上游代码合并到当前分支:
1 | git checkout myfeat |
-
若出现 rebase 冲突,手动修改冲突文件后,继续 rebase;
-
无冲突或冲突解决后,强制推送到自己的远程仓库(必须加
-f):
1 | git push -f origin myfeat |
6.3 提交 PR 到上游仓库
-
进入自己的 GitHub 仓库(
HP-Patience/MathModelAgent); -
点击
Compare & pull request,选择目标分支; -
填写 PR 说明,提交后等待原仓库作者审核即可。
7 PR 被合并后:同步代码 + 清理分支
当你的 PR 被上游仓库合并完成后,执行以下命令同步代码并清理无用分支:
1 | # 1. 切换到本地 main 分支 |

7.1 常见问题提示
-
代理报错
URL拼写可能存在错误:检查代理地址是否为127.0.0.1:7897,确认本地代理服务已启动; -
Rebase 冲突:打开冲突文件,删除冲突标记(
<<<<<<</=======/>>>>>>>),保留正确代码后重新执行; -
推送失败:确认分支权限,非 main 分支无需强制推送,更新上游后务必加
-f强制推送。 -
删除分支报错:使用大写
-D强制删除已合并完成的开发分支。
8 总结
本文介绍了从配置 → 克隆 → 开发 → 提交 → 同步 → 提PR → 清理的完整闭环 Git 协作流程,所有命令都是团队开源协作最标准的用法,可以直接使用。
