【问题标题】:Visual Studio 2013 tools for Git not connecting to private Github repository用于 Git 的 Visual Studio 2013 工具未连接到私有 Github 存储库
【发布时间】:2025-12-27 00:00:12
【问题描述】:

我正在尝试设置 Visual Studio 2013 以使用 Github 上的私有存储库。 当我尝试克隆它时,或者如果我使用 Github for Windows 克隆并尝试从 Visual Studio 推/拉时,我会收到以下错误:

发生错误。详细消息:libgit2 引发错误。类别 = 净(错误)。 响应状态码不表示成功:404(未找到)。

它适用于公共存储库,但不适用于私有存储库。 它也适用于 Github for windows 客户端。

【问题讨论】:

  • 可能是认证失败。 Github 将 404(而不是 401/403)返回到私有 repo 的身份验证失败,因为否则它们会泄露私有 repo 是否存在。
  • @barend 你能引用吗?这似乎很奇怪:您如何为返回 404 而不是 401 的东西提供凭据?
  • 我找不到参考,抱歉。这可能是他们博客上的一篇文章,也可能是一段录音。目的是为客户保密。如果您有现有的用户会话,则可以通过 HTTP 访问私有存储库(对于 SSH 访问,它取决于客户端证书)。如果您没有会话,则需要通过公共页面登录;你没有得到 401。现在,我不知道 Visual Studio 工具,所以我不知道这种机制是否是你得到 404 的原因,还是其他原因。
  • @Barend 实际上,对于任何非公开的 repo URL,它都会以 401 响应以防止信息泄露。如果我尝试克隆https://github.com/ethomson/DoesNotExist,则会提示我进行身份验证。
  • @atika 是否提示您输入用户名/密码?你在使用凭证助手吗?你在使用https 还是http...?

标签: git github visual-studio-2013


【解决方案1】:

在 @EdwardThomson 的帮助下,我发现 Visual Studio Git 工具正在将凭据保存到 Windows 中的凭据管理器。
问题是它没有将它保存在我正在寻找它的 Web Credentials 类别中,而是在 Windows Credentials 中,在 Generic Credentials 组中。

如果您使用具有不同凭据的多个私有存储库,这会导致问题,因为系统不会再次提示您。

如果您使用这样的回购 URL,您可以解决此问题:https://username:password@github.com/your_repo_name

【讨论】:

  • @spadelives:是时候 github 删除“your_repo_name”存储库了 :)
  • 现在好像不行了?收到此错误,无效的 URI:无法解析主机名。
【解决方案2】:

我遇到了同样的问题。我使用个人凭据登录,现在我正在尝试使用我的办公室凭据。

我通过删除 GitHub 保存在本地计算机中的凭据来修复它。

这是我采取的步骤:

  1. 进入控制面板
  2. 右上角:搜索“凭据”==> 选择“凭据管理器”
  3. 在通用凭据下 ==> 您应该会看到 GitHub ==> 点击箭头
  4. 点击“从保管库中删除”
  5. 尝试再次提交和同步

【讨论】:

    【解决方案3】:

    如果使用不同的凭据切换用户/多个存储库,这对我有用。

    默认情况下windows将密码存储在密码库中,通过使用凭证管理器我们可以更新web和windows应用程序保存密码的密码。

    打开凭据管理器 > 在 Windows 帐户或 Web 帐户上找到 Github 帐户并更新密码。

    通过上述步骤删除github详细信息,Visual Studio在克隆或推送时会提示密码。

    【讨论】:

      【解决方案4】:

      git-project 的权限不足(即只读)也会给你这个错误。

      【讨论】:

        【解决方案5】:

        我添加了一个类似的问题,我只是想添加更多信息...

        atika 的答案是准确的,你应该使用https://username:password@github.com/your_repository_name。 如果您在进行一些修改后需要更改存储库的 url,那么您可以直接修改文件:“yourProjectRoot/.git/config”-propery:“url”。在对我的 git 配置文件进行修改之前,我关闭了我的解决方案。

        但我建议在您的初始“克隆”上使用 userName:password 来 git url。然后它将为任何其他操作正确设置。

        另外,我个人还有另一个问题。我从主存储库而不是我自己的 fork 克隆。然后我无法“推动”(总是出现错误 403)。在我从 master 分叉后(使用来自 github web 界面的 fork),一切都很顺利(我的用户:密码进入存储库 url)。

        我认为没有必要,但我建议在执行任何其他操作之前将您的详细信息指定到“团队资源管理器”视图 - “主页” - “设置” - “Git 设置”。

        希望对您有所帮助。

        我使用的是 Visual Studio 2013 附带的嵌入式 Git。

        【讨论】:

          【解决方案6】:

          以下链接可以提供帮助: an-error-was-raised-by-libgit2-category-net-error.html

          【讨论】:

            【解决方案7】:

            我在 VS 2013 中也遇到过这种情况。我通过删除项目并从 VS 中重新克隆它来解决它。不过这很奇怪,它只发生在我正在使用的多个私人仓库之一上。

            【讨论】:

              【解决方案8】:

              尝试检查您是否在 Internet Explorer 上设置了代理。这为我解决了这个问题。

              【讨论】:

                【解决方案9】:

                我不会建议其他人这样做。但幸运的是,我处于开发的早期阶段。因此我不得不删除 Github 站点上的存储库。在我尝试还原其中一项更改后,问题就开始了。 Github 与其说是实用工具,不如说是一种拖累。在我的组织中,我是一个孤独的开发人员,处理这些问题对我来说毫无意义。简单的本地 Git 应该就足够了。

                【讨论】:

                  【解决方案10】:

                  当我将 repo 的名称从 main 更改为 origin 时,这发生在我身上,然后它不是凭据,它是一个保存 repo 路径的设置:

                  Visual Studio -> Team Explorer -> Settings -> Repository Settings 在远程部分使用_git/{newName} 之后的新值编辑路径

                  【讨论】: