140

以下是主题“我如何在 GitHub 中为其他人的代码贡献代码? ”的代码贡献步骤。

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

是否可以在不分叉回购的情况下提出拉取请求?

看到我的帐户中有 20 多个 repo 是为一些 pull request 分叉的,这非常令人难过。他们当时没有活动,零星/追随者。看起来我只是在为一个黑色的日子复制某人的代码。

4

7 回答 7

137

如果您无权在该存储库上创建分支,则没有分叉就无法创建拉取请求

于 2013-02-11T22:03:10.763 回答
30

一旦您的拉取请求被接受,您就可以安全地删除 repo

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

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

于 2013-02-11T22:10:56.670 回答
14

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

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

如果您只是想避免保留您没有积极使用的存储库,我个人建议选项#3。它遵循公认的 GitHub 工作流程,而不会弄乱您的仪表板。

于 2013-02-11T22:11:59.150 回答
7

github 支持共享存储库模型

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

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

于 2013-09-16T10:12:26.413 回答
1

你仍然需要那个单行: hub fork;git push -u $GIT_USER HEAD;hub pull-request

于 2017-11-02T07:49:59.710 回答
0

这令人困惑。您可以创建拉取请求,但您可以分叉某个项目,然后上传您自己的项目并在您的分叉中进行更改。选择选项以比较分支。这是方法之一。您应该分叉某人项目并使用最新的 git gui 克隆它(输入 url 和文件夹名称,安装路径将存储您的分叉,默认设置应该是最佳粘贴)。或者使用 soulseek(类似于服务器)、torrents 或 chomikuj(尽管您需要使用 dziellacz 将开源文件拆分为 1MB 以进行合并)。

于 2020-10-02T03:03:27.447 回答
0

作为一种解决方法,您可以仅为 fork repos 创建组织。

于 2021-06-17T16:12:22.250 回答