繁体   English   中英

如何创建一个到 GitHub 的拉取请求?

[英]How to create a pull request to GitHub?

我想向一个我只有读访问权限的外国项目发送推送请求,并打开一个问题。

我遵循了几个教程,但我总是收到错误消息,说我没有写权限。 首先,我使用 GitHub Desktop for Windows 进行了尝试,但没有成功; 现在我直接在 Linux shell 中尝试。

这是我所做的:

  1. git 克隆https://github.com/matthiasmullie/minify.git
  2. (然后我更改我要更改的文件)
  3. git checkout -b new_branch
  4. git 远程添加上游https://github.com/matthiasmullie/minify
  5. git config user.email "我的邮箱地址"
  6. git config user.name "我的名字"
  7. git commit -S -m "我在这里解释我的更改"
  8. git push -u origin new_branch
  9. (现在我输入我的 GitHub 登录凭据)

然后我收到此错误消息:

远程:拒绝 danielmarschall 对 matthiasmullie/minify.git 的许可。 致命:无法访问“https://github.com/matthiasmullie/minify.git/”:请求的 URL 返回错误:403

我究竟做错了什么?

我将假设存储库https://github.com/matthiasmullie/minify.git是您要向其发送拉取请求的存储库。 正如您在问题中提到的,这将是upstream存储库。

您没有对upstream写权限。 除非您是该项目的密切合作者,否则存储库的所有者不会授予您对它的写访问权限。 那么,我们如何解决这个问题呢? 您想为回购做出贡献,但您无法推动它!

解决方案是在执行您在回答中描述的所有步骤之前创建该存储库的副本。 该副本称为fork fork是属于您的回购的副本。 它位于您的 GitHub 帐户中,因此您对该副本具有完全管理员权限。

因此,第一步是转到 Matthias Mullie ( https://github.com/matthiasmullie/minify.git ) 拥有的存储库并查找创建fork的按钮(它位于正常显示)。 点击那个按钮并等待一段时间后,你就会有一个属于你的仓库 url 或者那个新的仓库会是https://github.com/[your-github-username]/minify仔细看分叉的 URL,它将包含您的 GitHub 用户名,而不是 Mathias。

现在,您按照上面提到的步骤操作,但使用您的fork作为遥控器:

最后一次推送后,您可以登录 github.com,您应该能够从那里创建拉取请求。

请注意,我用于遥控器的名称是origin ,而不是upstream 公约如下:

  • origin remote 是我的fork ,我有权写入的那个。
  • upstream远程是原始仓库,我无法推送。

正如我上面提到的,这是一个约定,因此您可以找到其他方法来定义upstreamorigin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM