Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过GitHub提交拉取请求的正确方式(当对开源作出贡献时)_Git_Github_Open Source - Fatal编程技术网

通过GitHub提交拉取请求的正确方式(当对开源作出贡献时)

通过GitHub提交拉取请求的正确方式(当对开源作出贡献时),git,github,open-source,Git,Github,Open Source,我已经从GitHub派生并克隆了一个项目,然后从master分支进行更改。一旦我做了更改,并想提交一个请求,我想知道什么是最好的方式来做 (1) 直接从我的分行向上游回购提交拉取请求,然后在我的回购中将我的分行与主回购合并 或 (2) 首先将我的分支与我的回购中的主回购合并,然后从我的主回购向上游回购提交拉取请求?(1)更好,因为您可以有多个分支-每个拉取请求一个分支。您不需要将PR分支合并到master(除非您愿意)。根据经验,您不应该在master分支上开发。虽然您在技术上可以,但主分支通常

我已经从GitHub派生并克隆了一个项目,然后从master分支进行更改。一旦我做了更改,并想提交一个请求,我想知道什么是最好的方式来做

(1) 直接从我的分行向上游回购提交拉取请求,然后在我的回购中将我的分行与主回购合并


(2) 首先将我的分支与我的回购中的主回购合并,然后从我的主回购向上游回购提交拉取请求?

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

根据经验,您不应该在master分支上开发。虽然您在技术上可以,但主分支通常用于跟踪项目的当前状态。由于您的拉取请求尚未被接受,因此它不会反映当前状态,将其合并到本地主机只会导致混乱。最佳做法如下:

  • 分叉项目
  • 创建本地功能分支(例如,
    git checkout-b myfeature
  • 本地开发、测试和验证
  • 将本地功能分支推送到GitHub帐户上的远程分支(例如,
    git Push origin myfeature
  • 创建从功能分支(
    yourname/myfeature
    )到主分支(
    projectowner/master
    )的拉取请求
  • 获得审核,根据需要修复拉取请求
  • Project maintainer合并您的请求
  • 使用合并的补丁更新您自己的本地主机(例如,
    git-fetch-upstream&&git-rebase-upstream/master

  • 谢谢不幸的是,我只能接受一个答案,但这也很有帮助