Pull Request(PR,合并请求) 是 GitHub、GitLab、Bitbucket 等代码托管平台提供的一种代码协作方式。
📌 简单理解:
- 你 在 fork 或 自己的分支 上做了一些代码修改。
- 你希望把这些修改合并到主项目(如
main
或develop
分支)。 - 你发起一个 Pull Request(PR),请求项目维护者审核并合并你的代码。
PR 不是 Git 本身的功能,而是代码托管平台提供的代码审查机制。
贡献 PR 是什么意思?
贡献 PR(贡献 Pull Request)指的是:
你向一个开源项目或团队的代码仓库提交代码,并通过 PR 请求合并你的代码贡献。
📌 贡献 PR 的典型流程:
- Fork 仓库:
- 先 Fork(克隆)目标仓库到自己的 GitHub 账号。
- 这样你有了一个自己可以自由修改的版本。
- 创建新分支并开发:
git checkout -b feature-new
- 在自己的分支
feature-new
上进行代码修改和提交。
- 提交代码:
git add . git commit -m "添加了某某新功能"
3.推送到自己 Fork 的仓库:
git push origin feature-new
4.创建 Pull Request(PR):
- 在 GitHub/GitLab 上,进入 Fork 之后的仓库。
- 点击“Compare & pull request”。
- 填写 PR 说明,描述你的修改内容。
5.等待维护者审核和合并:
- 维护者会查看 PR 代码,如果有问题可能会要求修改。
- 如果通过审核,维护者会合并 PR,你的代码就正式进入主仓库!
PR 和直接 git push
到主仓库的区别?
- PR 方式(推荐):
- 适用于团队协作和开源贡献,允许代码审查,保证代码质量。
- 直接
git push
到主仓库:- 只有有权限的人(如管理员)才能直接 push 到主仓库,适用于小团队。
在大多数开源项目中,你不能直接 push 代码,必须通过 PR 提交代码。
✅ Git Pull Request(PR) 是 GitHub/GitLab 等平台的代码贡献方式,主要用于代码审核和合并。
✅ 贡献 PR 指的是向开源项目或团队代码仓库提交代码,帮助改进项目。
✅ PR 需要维护者审核后才能合并到主分支,因此是标准的团队协作方式。
为什么要先 Fork?Fork 和 Clone 有什么区别?
在 GitHub、GitLab 或 Bitbucket 上,Fork 和 Clone 是两种不同的代码获取方式,适用于不同的使用场景。
1. 什么是 Fork?
Fork(派生/克隆到自己的账号) 是在 GitHub/GitLab 上创建一个项目的 副本,存放在自己的代码仓库里。
🔹 Fork 适用于:
✅ 开源贡献:你想修改别人的开源项目,但没有直接 Push 权限,所以必须 Fork 后再提交 PR。
✅ 安全性:Fork 后的代码不会直接影响原仓库,只有 PR 通过后才会合并。
✅ 个人修改:你想在 GitHub 上保留某个项目的副本,方便自己改动。
📌 示例:Fork 一个开源项目
- 在 GitHub/GitLab 上打开某个开源项目(例如
https://github.com/someone/project
)。 - 点击 Fork,GitHub 会在你的账号下创建一个副本(
https://github.com/your-username/project
)。 - 克隆 Fork 的仓库 到本地开发:
git clone https://github.com/your-username/project.git
- 提交 Pull Request(PR),请求合并到原始项目。
- 修改代码,提交到自己的仓库:
git add . git commit -m "修改了某某功能" git push origin main
- 提交 Pull Request(PR),请求合并到原始项目。
2. 什么是 Clone?
Clone(克隆) 是把远程仓库的代码下载到本地,用于本地开发。
🔹 Clone 适用于:
✅ 你有权限直接 Push 代码(如公司团队项目)。
✅ 你只是想运行代码,并不打算提交更改(比如学习别人项目的代码)。
✅ 你已经 Fork 了项目,现在要克隆它到本地进行开发。
📌 示例:Clone 代码
如果你有权限直接修改某个 GitHub 项目,你可以直接 Clone:
git clone https://github.com/someone/project.git
3. Fork 和 Clone 的区别

4. 什么时候用 Fork?什么时候用 Clone?
✅ 如果你是开源项目的外部贡献者(没有直接 Push 权限):Fork + Clone
✅ 如果你是团队成员,有权限直接修改代码:直接 Clone
✅ 如果你只是想下载代码,看看或运行一下:直接 Clone