拉请求而不分叉?


105

下面是从主题代码贡献的步骤“ 如何在GitHub上其他的代码贡献?

  1. 分叉项目
  2. 对存储库进行一个或多个注释良好并干净的提交。如果要修改多个零件或特征,则可以在此处建立新分支。
  3. 在github的网络界面中执行拉取请求。

是否可以在不派生仓库的情况下发出拉动请求?

这是很可悲的看到我的帐户超过20个回购其被叉了一些引入请求。他们那时没有活动,并且零星/关注者。看起来我只是在复制某人的代码,度过了一个黑夜。


你为什么要

3
好问题。还不清楚是否要使这20个存储库与原始存储库保持最新(或删除它们)。
Corey Alix

Answers:


95

如果您无权在该存储库上创建分支,则无法在没有fork的情况下创建拉取请求


8
您能否解释一下,如果您有权访问该存储库上的分支,那么如何创建拉取请求?
bolinfest 2014年

13
GitHub对此有一个很好的指导:help.github.com/articles/creating-a-pull-request
Ryan Bigg

2
只是提醒您一些并非所有人都清楚的事情。您需要为要贡献的每个存储库创建一个分支...但是在分支中创建分支可以让您一次为上游回购工作一个以上的PR。您不需要来自同一存储库的20个fork即可贡献20个PR。
JulioHM '19

24

接受拉取请求后,您可以安全地删除回购

之后,只需直接从原始上游回购中克隆即可。

如果您还有其他请求请求,则应在各自的分支中进行请求,这意味着您可以安全地删除为管理接受的请求请求而创建的分支(如“ 我的请求请求已被合并,该怎么办”下一个? ”)


2
仅供参考,github最近为合并拉取请求添加了一个按钮,以使其易于(直观)删除拉取请求分支:github.com/blog/1335-tidying-up-after-pull-requests
David M

10

根据定义,拉取请求涉及派生,除非您具有对目标存储库的提交访问权限。您可以做几件事情:

  1. 如果您确实具有提交访问权限,请创建一个分支,然后对新分支进行拉取请求。
  2. 将补丁发布到问题正文中。这不是真正的GitHub方式,但确实可以。
  3. 分叉存储库,创建请求请求,然后在合并或拒绝请求请求后删除分支。

如果您只是想避免在没有积极使用的存储库周围,我个人建议选择#3。它坚持接受的GitHub工作流程,不会弄乱您的仪表板。


最好放在这里:4.维护第二个Github帐户,以处理这些“一劳永逸”的情况。该帐户中是否有20个无效的存储库都没关系,因为它不是主帐户。
tanius

7

github支持共享存储库模型

共享存储库模型在小型团队和组织在私人项目上进行协作时更为普遍。每个人都被授予对单个共享存储库的推送访问权限,并且主题分支用于隔离更改。

拉取请求在Fork&Pull模型中特别有用,因为它们提供了一种方法来通知项目维护人员有关您的叉的更改。但是,它们在共享存储库模型中也很有用,在该模型中,它们用于在合并到主线分支之前启动代码审查和有关一组更改的一般性讨论。


5
请注意,这不能解释如何在此模型中创建拉取请求。
bolinfest 2014年

0

您仍然需要那种单线: hub fork;git push -u $GIT_USER HEAD;hub pull-request

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.