Git - 错误:RPC 失败;result=22,HTTP 状态码 = 401 致命错误:远程端意外挂断

25

我正在使用 Ubuntu 11.10 操作系统,安装了 git 版本为 1.7.7.1。我使用 git-cola 工具来推送和拉取我的代码,并且之前成功地进行了提交和推送。

现在,我更换了电脑,并且新的系统与上述配置相同(Ubuntu 11.10 操作系统和 git 版本为 1.7.7.1)。

在新的电脑上,我在进行 git push 操作时出现了问题,当我尝试推送我的代码时,收到了以下错误消息:

error: RPC failed; result=22, HTTP code = 401
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly

在互联网上,我发现可能是以下任何一个原因:

  • 错误的git用户密码(在我的情况下,我认为我正在使用正确的密码来推代码。因为,即使现在我从我的旧系统推送工作区代码时也成功了(使用相同的密码!)。但问题仅出现在我的新系统上。
  • 使用以下命令增加缓冲区大小:

    git config --system http.postBuffer 52428800

我尝试了这个方法,但没有运气。甚至尝试将缓冲区大小增加到52428800以上,但仍然出现相同的错误。

卡在这个问题上了。请有人能提供一个解决方案吗?

谢谢。


1
你能发布远程URL吗? (git remote -v) - CharlesB
嗨,谢谢回复。它给出了: origin http://my_site_url/git/project_name.git(获取) origin http://my_site_url/git/project_name.git(推送) - user915303
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/16998/discussion-between-charlesb-and-kamal - CharlesB
2
嗨,我遇到了同样的问题。我的问题是将本地更改推送到 TFS-Git 存储库中,这里没有解决这些问题。https://dev59.com/n2Ah5IYBdhLWcg3wDfuy - Jon H
我在使用SmartGit应用程序时遇到了同样的问题(而不是git命令行)。看起来该应用程序正在使用自己的身份验证,而在我的情况下是错误的。 - Arashsoft
显示剩余3条评论
11个回答

17

你在远程URL上肯定出了错,请使用 git remote -v 命令进行双重检查并修正它。

 git remote set-url origin <new-url>

假设远程名称为origin


9

针对使用TFS git存储库的Windows用户。我的Windows密码最近更改,因此我必须更新存储库的凭据才能继续使用。

error RPC failed; result=22, HTTP code = 401 fatal: The remote end hung up unexpectedly

在进行不同的操作,如拉取(fetch)、推送(push)或拉取(pull)时,我们使用TFS git仓库。我通过控制面板中的Windows凭据管理器删除了我的tfs密码,解决了这个问题。

https://support.microsoft.com/help/4026814/windows-accessing-credential-manager


1
我们有相同的问题,因为在我们的环境中,我们托管自己的Git服务器并且使用Windows用户名和密码,但仍然存储了在凭据管理器中上次使用的用户名和密码,所以我们必须删除它。 - Jordan Ryder
1
这不仅适用于TFS。 - Mars
1
这解决了我在Windows上使用git的问题。它也解决了IntelliJ的问题,因为它使用git for windows。 - andy

5
更新到Git版本1.8.x后,问题就得到了解决。

4

在我的情况下,用户权限是问题所在。我将自己添加为存储库的有效用户之后,“推送”就可以正常工作了。


3

顺带一提,我也遇到了同样的问题,并通过删除并重新添加远程来解决它:

git remote remove origin
git remote add origin http://host:port/my/repo
git branch --set-upstream master origin/master

假设您正在主分支上,并且您唯一的远程是origin


致命错误:'--set-upstream'选项不再受支持,现在应该使用'git branch --set-upstream-to=origin/master master' - Mugen

2

我曾经遇到了同样的错误,对我来说是因为我没有该代码库的提交权限。401错误码是HTTP 401(未验证)错误。一旦我获得权限,问题就得到了解决。


我也意识到这个错误与安全有关,因为它明确地显示了“HTTP 401”。原来我使用了错误的用户名和密码。在使用正确的凭据后,我能够像往常一样将我的提交推送到代码库。 - Ulysses Alves

1

我的问题 -- error: RPC failed; result=22, HTTP code = 401 -- 在执行 git push 前使用 git repack -a -d 命令解决了。


1
这可能不是您要找的答案,但我的公司代理在提交或上传到github.com时会默默地失败。对于git.com的所有其他操作都可以正常工作,混淆了问题。
唯一的解决方案是创建补丁并通过网络电子邮件发送。虽然有点笨拙,但很有效。

我不知道这个答案对任何人有什么帮助。 - Kyle Burkett
这对我很有帮助! - JoeTheShmoe

0

我在我的Windows 10机器上重新安装了Git。 然后魔法发生了!!


0

确保您的 URL 包含正确的用户名和密码

git remote set-url origin http : //username:password..

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接