Git 进阶知识:Issue、Fork、PR 与多仓库管理
Git 进阶知识:Issue、Fork、PR 与多仓库管理
在团队协作开发中,Git 不仅仅是版本控制工具,更是协作开发的桥梁。本文将介绍几个重要的 Git 协作概念和实践技巧。
一、Issue:代码托管平台的问题追踪
在 GitHub、Gitee 等代码托管平台上,使用者发现 Bug 或有功能建议时,可以通过 Issue 向作者反馈。作者和提问者可以在 Issue 中进行讨论、沟通,直到问题解决后关闭 Issue。
Issue 的核心功能
-
状态管理:Issue 有打开(Open)和关闭(Closed)两种状态,方便追踪问题处理进度
-
丰富标记:可以添加标签(Label)进行分类,如
bug、enhancement、documentation等 -
关联分支:可以将 Issue 与特定分支关联,方便追踪代码修改
-
互动讨论:作者和提问者可以在 Issue 中评论互动,沟通问题细节
-
指派负责人:可以指定谁来处理这个问题
作者可以和其他开发者进行喋喋不休的争论,然后默默的去改bug


这是在github上的issure的打开位置,我们可以看到,有很多的搜索选项,打开和关闭,issure打开和关闭,作者,标签,项目,等等。
还可以看到作者和提问者扯皮的痕迹。
二、Fork:项目复用与贡献
2.1 什么是 Fork?
Fork 是指将别人的项目完整复制一份到自己的账户下,一键拉取作者的所有提交记录,这个项目就彻底成为你自己的了。你可以:
-
自由修改代码并提交更新
-
将作者后续的更新同步到自己的项目中
-
完全掌控项目的开发方向
-
原作者后续的开发与当前项目没有关系。

2.2 Fork 的使用场景
-
参与开源项目:你想为某个开源项目贡献代码,但没有直接写入权限
-
学习研究:复制项目到自己账户进行学习和修改
-
二次开发:基于开源项目进行自己的定制开发
-
保存版本:保留一个特定版本的项目副本
2.3 Fork 的操作步骤
# 1. 在 GitHub/Gitee 上 Fork 项目(点击 Fork 按钮)
# 2. 克隆自己 Fork 的项目
git clone https://github.com/你的用户名/项目名.git
# 3. 添加原项目为上游仓库
git remote add upstream https://github.com/原作者/项目名.git
# 4. 查看远程仓库配置
git remote -v


三、PR(Pull Request):代码合并请求
3.1 什么是 PR?
PR(Pull Request)是向原项目作者发起的代码合并请求。当你修改了代码后,通过 PR 请求原作者审核并合并你的修改。
3.2 PR 的工作流程

3.3 创建 PR 的步骤
# 1. 在本地创建新分支进行修改
git checkout -b feature/my-new-feature
# 2. 进行代码修改并提交
git add .
git commit -m "feat: 添加新功能"
# 3. 推送到自己的远程仓库
git push origin feature/my-new-feature
# 4. 在 GitHub/Gitee 上创建 PR
# - 选择 base: 原项目的主分支
# - 选择 compare: 你刚推送的分支
# - 填写标题和描述
# - 点击 Create Pull Request
3.4 演示
-
我们首先fork别人的仓库
-
然后点击
pull request创建一个新的pr
-
创建新的pr 选择分支
在base仓库我们可以看到有pr
-
来到base仓库 被fork的仓库 在base仓库我们可以看到有pr

-
同意合并我们就完成了一次pr

3.5 PR 的应用场景
PR 主要有两种使用场景:
场景一:向别人的仓库提交代码(开源贡献)
当你 Fork 了一个开源项目并修改了代码后,可以通过 PR 请求原作者合并你的修改:
-
你 Fork 了原作者的项目
-
在本地修改代码并 push 到你的远程仓库
-
向原作者的仓库发起 PR
-
原作者审核后决定是否合并
场景二:团队内部合并到受保护的主分支
在团队开发中,master/main 分支通常是被保护的,开发者没有直接 push 的权限,必须通过 PR 来合并代码:
-
开发者在功能分支上完成开发
-
向 master/main 分支发起 PR
-
团队成员或负责人审核代码
-
审核通过后才能合并到主分支
这种保护机制可以确保代码质量,防止未经审核的代码直接进入主分支。
四、绑定多个远程仓库
为什么需要多个远程仓库?
在实际开发中,你可能需要同时管理多个远程仓库:
比如国内网络不方便gitub,不能持续的对github进行提交,我们会把仓库提交到gitee,然后提交到github上。
4.1 首先会在gitee和github上创建一个空的仓库
.....
4.2 查看当前远程仓库配置
# 查看远程仓库信息
git remote -v
# 输出示例:
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
4.3 添加多个远程仓库
# 添加 Gitee 作为第二个远程仓库 git remote add gitee https://gitee.com/你的用户名/项目名.git git remote add github https://github.com/你的用户名/项目名.git # 再次查看,确认添加成功 git remote -v
输出示例:
origin https://github.com/user/repo.git (fetch) origin https://github.com/user/repo.git (push) gitee https://gitee.com/user/repo.git (fetch) gitee https://gitee.com/user/repo.git (push)
4.4 推送到多个远程仓库
# 推送到 GitHub(origin) git push origin main # 推送到 Gitee git push gitee main # 推送到 Github git push github main
4.6 查看配置
在 .git/config 文件中可以看到配置:
[remote "origin"] url = https://github.com/user/repo.git fetch = +refs/heads/*:refs/remotes/origin/* [remote "gitee"] url = https://gitee.com/user/repo.git fetch = +refs/heads/*:refs/remotes/gitee/*
五、总结
| 功能 | 作用 | 使用场景 |
|---|---|---|
| Issue | 问题追踪和任务管理 | Bug 报告、功能请求、任务分配 |
| Fork | 创建项目副本 | 参与开源、学习研究、二次开发 |
| PR | 代码合并请求 | 团队协作、代码审核、贡献代码 |
| 多远程仓库 | 同步管理多个仓库 | 多平台备份、多环境管理 |
掌握这些 Git 协作技巧,能让你在团队开发和开源贡献中更加得心应手!
参考资料
都看到这里了,点个小赞不要钱,点个收藏不迷路!十分感谢
有问题我会一一回复!👇
更多推荐




所有评论(0)