通过 GitHub 提交拉取请求的正确方法(为开源做出贡献时)

Proper way to submit pull request via GitHub (when contributing to open source)

我从 GitHub 分叉并克隆了一个项目,然后从 master 创建了一个分支来进行我的更改。一旦我做出更改并想提交拉取请求,并且想知道什么是最好的方法。

(1) 直接从我的分支向上游仓库提交拉取请求,然后稍后将我的分支与我的仓库中的 master 合并

(2) 先在我的仓库中合并我的分支和 master,然后从我的 master 向上游仓库提交拉取请求?

(1) 更好,因为您可以有多个分支 - 每个拉取请求一个分支。而且你不需要将 PR 分支合并到 master(除非你想)。

根据经验,你不应该在 master 分支上开发。尽管从技术上讲可以,但 master 分支通常用于跟踪项目的当前状态。由于您的拉取请求尚未被接受,因此它不反映当前状态,将其合并到您的本地主站只会造成混乱。最佳做法是这样的:

  1. 分叉项目
  2. 创建本地功能分支(例如,git checkout -b myfeature
  3. 在本地开发、测试和验证。
  4. 将本地功能分支推送到您 GitHub 帐户上的远程分支(例如,git push origin myfeature)。
  5. 创建从您的功能分支 (yourname/myfeature) 到主分支 (projectowner/master) 的拉取请求。
  6. 接受审查,根据需要修复拉取请求
  7. 项目维护者合并您的拉取请求
  8. 使用合并的补丁更新您自己的本地母版(例如,git fetch upstream && git rebase upstream/master)。