Push 上不允许使用 git-receive-pack
Posted
技术标签:
【中文标题】Push 上不允许使用 git-receive-pack【英文标题】:git-receive-pack not permitted on Push 【发布时间】:2012-05-15 14:03:30 【问题描述】:我在 Eclipse 中使用 EGit,并尝试推送到 Github。我在本地进行了提交,然后尝试将其推送到上游。我收到了这个错误:
Can't connect to any URI: https://github.com/Buroa/Konklex.git (An internal Exception occurred during push: https://github.com/Buroa/Konklex.git: git-receive-pack not permitted)
我似乎找不到解决办法。我在这里遗漏了什么吗?
【问题讨论】:
你使用什么 URL 来尝试推送到 GitHub? @GregHewgill github.com/Buroa/Konklex.git 如果您使用ssh://
URL 是否有效? (我只推送过 SSH,而不是 HTTPS。但这只是我。)
@GregHewgill 尝试使用 SSh 并得到了session is down
How do I push to Git Repo given the following error: An internal Exception occurred during push: ssh://git@github.com/xxx/xxx.git: session is down的可能重复
【参考方案1】:
对于想知道如何为 Bitbucket repo + eclipse IDE 解决此问题的人
转到Preferences->Git
,然后将Http Client
更改为Java built-in HTTP
这为我解决了这个问题。
【讨论】:
【参考方案2】:在 GitHub 的较新更新中,不允许应用程序直接访问您的帐户存储库。为了克服这个问题,您必须从“设置 > 开发人员 > 创建具有存储库权限的令牌”创建一个令牌,并在 Eclipse 或任何其他应用程序中使用它而不是您的密码。这将起作用。以上都是更新前的回答,不能解决问题。
更详细的指南可以参考这个视频(不是我的):https://www.youtube.com/watch?v=8x0ywtCOzxo
【讨论】:
这里是另一个来自github的链接github.blog/…【参考方案3】:试试这个
此错误是由于升级造成的。所以你需要去
设置 > 开发者设置 > 个人访问令牌 > 生成令牌
-
选择第一个选项并点击生成
使用这个生成的令牌作为 git 的密码
https://www.youtube.com/watch?v=rLEYw1caoBQ
【讨论】:
【参考方案4】:我使用 PAT(个人访问令牌)解决了这个问题。您可以将 PAT 与用户名而不是密码结合使用。
遵循这个 github 指南: https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
在使用 GitHub API 或命令行时,个人访问令牌 (PAT) 是使用密码对 GitHub 进行身份验证的替代方法。
如果您想使用 PAT 访问使用 SAML SSO 的组织所拥有的资源,您必须授权 PAT。有关详细信息,请参阅“关于使用 SAML 单点登录进行身份验证”和“授权个人访问令牌用于 SAML 单点登录”。
【讨论】:
【参考方案5】:偶然发现了很久,终于找到了答案。 在密码部分,我们不应该输入 GitHub 登录密码,而是必须输入个人访问令牌。 以下链接显示了如何创建个人访问令牌:https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 @Tyler2P 我同意你的观点。但是在这种情况下,问题的答案将是输入个人访问令牌而不是密码,并且共享的链接仅讨论了如何设置个人访问令牌以防万一有人不知道。【参考方案6】:在最新的 github 更新后,您无法使用密码访问。而是使用 2FA 或生成令牌并将其放在密码字段中。请点击以下链接。
Generate token
【讨论】:
【参考方案7】:使用 GitHub 中的最新更改,请尝试此链接。现在,您需要将令牌作为密码传递,而不是实际密码。
参考 - https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
【讨论】:
【参考方案8】:进入 Bitbucket - 个人设置 - 访问管理 - 应用密码 - 点击“创建应用密码”按钮
在“标签”字段中提供任何名称
选中权限部分中的所有复选框
点击“创建”按钮
将生成密码。复制此密码并将其保存到任何本地文本文件中。
转到凭据管理器 - Windows 凭据管理器
删除已保存的 Bitbucket 登录。
现在转到 Eclipse 并尝试再次提交和推送
当提示输入密码时,提供复制的生成应用密码。
现在提交和推送应该是成功的,没有 git-receive.-pack not allowed 错误。
enter image description here
【讨论】:
【参考方案9】:简单的答案是 - 您没有尝试推送的 repo 的写入权限。
【讨论】:
【参考方案10】:另一个问题可能是您在为 Github 创建个人访问令牌时没有选中所有必要的复选框。
在我的情况下,这是我的错误,通过创建一个新令牌并在创建个人访问令牌时选中所有权限/复选框,它工作正常。
【讨论】:
【参考方案11】:非常基本,但发生在我身上:我没有验证我的电子邮件。检查您的电子邮件,按“验证电子邮件”按钮,然后再次尝试推送。
【讨论】:
【参考方案12】:您的 git 用户 ID 和密码肯定在配置上不匹配。请重新检查并确保您的凭据正确无误。
【讨论】:
【参考方案13】:我在使用 eGit 和 AnypointStudio(使用 https 协议)时遇到了这个问题
解决方案-
在相应的 Git 存储库设置中生成访问令牌,将此令牌保存在一边。
转到 Git Repositories -> Your Project -> Remotes -> origin -> 右键单击 Push(红色箭头)并选择 Change Credentials。
在密码框和用户名中输入第一步生成的访问令牌,保存并尝试立即推送本地提交。
对我来说它有效。
【讨论】:
【参考方案14】:由于我的组织要求我们使用 SSH 密钥而不是用户名+密码,因此使其对我有用的方法是:
-
在 Eclipse 中右键单击您的项目 --> 团队 --> 远程 --> 配置推送到上游
点击 URI 旁边的“更改”
选择 ssh 协议
在身份验证下 --> 用户插入
git
(如果您在此处使用默认用户名,似乎 eclipse / git 会自动搜索您的 id_rsa 密钥文件 - 我尝试添加我的真实用户名,但从未奏效)
完成并保存并推送
【讨论】:
【参考方案15】:git-receive-pack not permitted
等价于username/password not recognized
正如其他人所发布的,您可能会因为许多不同的原因收到错误消息,包括:
您没有 Github 帐户 您没有通过电子邮件验证来完成您在 Github 上的帐户 您的用户名没有对该存储库的推送权限(例如您的用户名未列为贡献者) 您不小心使用了错误的用户名(替换为对该存储库没有推送权限的用户名) 您输入的密码错误 您使用了错误的协议进行推送(例如您使用了 SSH 或 HTTPS,而只有其他协议可以接受)【讨论】:
【参考方案16】:我在推送到 GitLab 存储库时遇到此错误,我使用的 username
没有权限推送到分支的存储库。
将权限级别从reporter
更改为master
解决了问题。
【讨论】:
【参考方案17】:如果您在使用 Git 时遇到 git-receive-pack not allowed 错误,很可能是您的配置问题。在我的情况下,我使用 https 克隆了存储库(需要身份验证)。但是,推送失败并出现上述错误。这是因为我只被允许通过 SSH 推送。因此,一旦我更改了结帐配置中的协议,一切就又好了。
由于我使用 Eclipse(和 eGit),可能有人知道可以通过项目的上下文菜单(右键单击)访问 Git 克隆项目的配置设置,然后选择 Team、Remote 和“配置从上游获取”或配置推送到上游”,如适用。
希望这会有所帮助!
【讨论】:
【参考方案18】:就我而言,这是因为权限。我们做了一些从 gitlab 到 github 的迁移。我的同事从我正在处理的旧项目中创建了一个私人项目。完成后,我发现我无法推送并收到此错误。最后,我们发现是因为我没有被添加到这个项目的合作者中。我认为它应该自动完成,因为我已经是这个项目的贡献者之一。希望对有类似问题的人有所帮助。
【讨论】:
【参考方案19】:尽管听起来很愚蠢:确保您确实有权推送到 repo。
在我的情况下,同事还没有给我的用户推送权限...
【讨论】:
这是我遇到错误的典型原因【参考方案20】:由于某些原因,egit 似乎不适用于 Wincred 凭据存储。你必须使用eclipse之一。
-
打开 Git Repositories 透视图。
打开 Remotes 节点并右键单击源(或您选择的遥控器)。
点击Configure Push然后Change...按钮
填写身份验证部分
进行试运行以进行测试
这应该可以解决问题。
【讨论】:
【参考方案21】:就我而言,我必须在 Github 上接受该组织的邀请。
最初,我试图推送我的更改并收到上述错误。
点击邀请信中的链接后,我的推送成功了。 在您的收件箱中查找包含以下内容的电子邮件,然后点击链接加入:
嗨
<username>
,
<other_username>
已邀请您加入<org_name>
组织 在 GitHub 上。前往https://<github_address>/<org_name>
查看 出<org_name>
的个人资料。要加入
<org_name>
,请点击此链接:
https://<github_address>/orgs/<org_name>/invitation?via_email=1
一些有用的提示:
如果您收到 404 页面,请确保您以<username>
登录。 您也可以直接访问组织页面https://<github_address>/<org_name>
接受邀请如果您没有收到此邀请,可以忽略此电子邮件。
感谢 GitHub 团队
【讨论】:
【参考方案22】:只需在上下文菜单 > 团队 > 远程 > 配置推送到上游 > 更改中选中“存储在安全存储中”。 问题已解决 :D
【讨论】:
上下文菜单项对我来说是灰色的。我的根本原因是缺少推动回购的权利。【参考方案23】:有时您需要在 github 上验证您的帐户电子邮件
【讨论】:
这个答案似乎可以使用更多细节。【参考方案24】:我知道这是一个旧线程,但我今天为此苦苦挣扎了一个多小时,最后发现这是因为在我的 egit 推送对话框窗口中我使用了不同的用户 ID
一旦我输入了正确的 github 用户,向远程存储库的推送就顺利进行了。
【讨论】:
我必须使用我的用户名和密码重新配置推送,并检查“存储在安全存储中” 这里也一样。我已经在 Eclipse 中有其他项目使用的用户不是新项目中的协作者。 谢谢。这基本上是“用户名/密码无法识别”的非常奇怪的错误消息 怎么做? 注意:GitHub 最近更改了其身份验证策略。用户在进行拉取、推送或克隆等操作时必须使用个人访问令牌 (P.A.T) 而不是密码。看看:docs.github.com/en/github/authenticating-to-github/…以上是关于Push 上不允许使用 git-receive-pack的主要内容,如果未能解决你的问题,请参考以下文章
Apple Push Notification 在共享服务器上不起作用
在 DELETE 上不允许使用 Owin 自托管 Web API 405 方法
javascript错误:ShadowRoot上不允许使用Robot Framework进行鼠标悬停的方法“elementsFromPoint”