其他

什么是 Git Pull Request (PR)?

Pull Request(PR,合并请求) 是 GitHub、GitLab、Bitbucket 等代码托管平台提供的一种代码协作方式。

📌 简单理解

  1. fork自己的分支 上做了一些代码修改。
  2. 你希望把这些修改合并到主项目(如 maindevelop 分支)。
  3. 你发起一个 Pull Request(PR),请求项目维护者审核并合并你的代码。

PR 不是 Git 本身的功能,而是代码托管平台提供的代码审查机制

贡献 PR 是什么意思?


贡献 PR(贡献 Pull Request)指的是:
你向一个开源项目或团队的代码仓库提交代码,并通过 PR 请求合并你的代码贡献

📌 贡献 PR 的典型流程

  1. Fork 仓库
    • 先 Fork(克隆)目标仓库到自己的 GitHub 账号。
    • 这样你有了一个自己可以自由修改的版本。
  2. 创建新分支并开发
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 上,ForkClone 是两种不同的代码获取方式,适用于不同的使用场景。

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