我想向只有读取权限的外国项目发送推送请求,然后打开一个问题。
我遵循了一些教程,但是总是收到错误消息,指出我没有写权限。首先,我使用适用于Windows的GitHub Desktop进行了尝试,但没有成功;现在我可以直接在Linux shell中尝试它。
这是我所做的:
然后我收到此错误消息:
远程:对matthiasmullie / minify.git的许可被拒绝 丹尼尔·马绍尔。致命:无法访问 'https://github.com/matthiasmullie/minify.git/':请求的网址 返回错误:403
我在做什么错了?
答案 0 :(得分:1)
我将假设存储库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,请仔细查看fork的URL,它将包含您的GitHub用户名而不是Mathias的。
现在,您按照上面提到的步骤进行操作,但是使用fork
作为遥控器:
最后一次推送后,您可以登录github.com,您应该能够从那里创建请求请求。
请注意,我用于遥控器的名称是origin
,而不是upstream
。约定如下:
origin
的远程用户是我的fork
,我有权写该远程用户。upstream
远程是我无法推送到的原始存储库。如上所述,这是一个约定,因此您可以找到其他方法来定义upstream
和origin