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

3.1 设置 7897 端口代理
适用于 http/https 协议下载 GitHub
# 配置 HTTP 代理git config --global http.proxy http://127.0.0.1:7897
# 配置 HTTPS 代理git config --global https.proxy https://127.0.0.1:78973.2 验证代理是否生效
# 查看 HTTP 代理git config --global --get http.proxy
# 查看 HTTPS 代理git config --global --get https.proxy
3.3 取消代理(备用)
若无需代理,可执行以下命令清除配置:
# 取消 HTTP 代理git config --global --unset http.proxy
# 取消 HTTPS 代理git config --global --unset https.proxy4 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):
# 关联自己的 Fork 仓库(origin)git remote add origin https://github.com/HP-Patience/MathModelAgent.git
# 关联上游原仓库(upstream,用于同步最新代码)git remote add upstream https://github.com/jihe520/MathModelAgent.git- 拉取最新代码到本地:
git pull origin main4.2.2 方式 2:直接 Git Clone(推荐)
git clone 会自动执行 git init + 关联远程仓库 + 下载完整最新代码,无需手动初始化和拉取:
# 克隆自己的 Fork 仓库到本地git clone https://github.com/HP-Patience/MathModelAgent.git
5 分支开发与代码提交
5.1 创建开发分支
永远不要直接在 main 分支修改代码,需创建独立开发分支:
# 创建并切换到 myfeat 分支(分支名可自定义)git checkout -b myfeat5.2 修改代码与提交
在 myfeat 分支完成代码修改后,提交变更:
# 添加所有修改文件git add .
# 提交代码(添加清晰的提交信息)git commit -m "feat: 完成XX功能开发"==注意==:请使用 conventional commit 进行提交内容说明
6 同步上游更新与推送代码
6.1 场景 1:上游仓库无新提交
若原仓库(upstream)未更新代码,直接将本地分支推送到自己的远程仓库:
# 将 myfeat 分支推送到自己的 GitHub 仓库git push origin myfeat6.2 场景 2:上游仓库有新提交
若原仓库已更新,需先同步上游代码,再推送,避免冲突:
- 切换回 main 分支,拉取上游最新代码:
git checkout maingit pull upstream main- 切换回开发分支,将上游代码合并到当前分支:
git checkout myfeatgit rebase main- 若出现 rebase 冲突,手动修改冲突文件后,继续 rebase;
- 无冲突或冲突解决后,强制推送到自己的远程仓库(必须加
-f):
git push -f origin myfeat6.3 提交 PR 到上游仓库
- 进入自己的 GitHub 仓库(
HP-Patience/MathModelAgent); - 点击
Compare & pull request,选择目标分支; - 填写 PR 说明,提交后等待原仓库作者审核即可。
7 PR 被合并后:同步代码 + 清理分支
当你的 PR 被上游仓库合并完成后,执行以下命令同步代码并清理无用分支:
# 1. 切换到本地 main 分支git checkout main
# 2. 拉取上游最新代码(包含你刚合并的功能)git pull upstream main
# 3. 删除本地已完成的开发分支(强制删除)git branch -D myfeat
# 4.(可选)同步到你自己的远程 main 分支git push origin main
7.1 常见问题提示
- 代理报错
URL拼写可能存在错误:检查代理地址是否为127.0.0.1:7897,确认本地代理服务已启动; - Rebase 冲突:打开冲突文件,删除冲突标记(
<<<<<<</=======/>>>>>>>),保留正确代码后重新执行; - 推送失败:确认分支权限,非 main 分支无需强制推送,更新上游后务必加
-f强制推送。 - 删除分支报错:使用大写
-D强制删除已合并完成的开发分支。
8 总结
本文介绍了从配置 → 克隆 → 开发 → 提交 → 同步 → 提PR → 清理的完整闭环 Git 协作流程,所有命令都是团队开源协作最标准的用法,可以直接使用。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!