【问题标题】:Git Push ERROR: Repository not foundGit推送错误:找不到存储库
【发布时间】:2021-03-11 08:10:58
【问题描述】:

gitgithub 有一个非常奇怪的问题。当我尝试推动时,我得到:

git push -u origin master
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly

我添加了遥控器:

git remote add origin git@github.com:account-name/repo-name.git

有什么想法吗?

【问题讨论】:

  • 是的,这就是我获得git remote add origin git@github.com:account-name/repo-name.git 的方式。它存在于 GitHub 中,并且是一个私有仓库。
  • 您是否仔细检查了您的用户和仓库名称?
  • 你是否更改了你的 github 用户名
  • 这是否与 repo 的读/写权限有关?我有一个只读存储库,当我尝试推送某些内容时收到此消息
  • 我遇到了同样的问题。我通过更新 .git/config 文件解决了这个问题。我将用户名放在[remote "origin"] 部分的 URL 键中。

标签: git github git-push


【解决方案1】:

检查您是否具有读写权限。

Git 错误消息具有误导性。我有一个类似的问题。我已被添加到现有项目中。我克隆了它并提交了本地更改。我去推了,得到了ERROR: Repository not found.的错误信息。

将我添加到项目中的人授予我对存储库的只读访问权限。他们做出了改变,我能够推动。

【讨论】:

  • 一定会喜欢那些有用的 Git 错误消息。找不到我刚刚克隆的存储库,是吗?骗子。
  • 是的,这里有同样的问题——没有提交权限,你会得到这个非常模糊的错误消息
  • 谢谢!您可以通过在网络上查看项目并单击“新建文件”来检查这一点
  • 有关如何检查您对存储库拥有哪些权限,请查看this * answer(针对不同的问题)。
  • 所以对我来说,我的密码中有一个 `(勾号),并且 PhpStorm 在发送 git push 之前删除了该字符:假设在这个例子中我的密码是 _pa``ssword_ Phpstorm 将输出以下内容:https://_username_:_password_@github.com/_username_/repo.git 而不是 https://_username_:_pa``ssword_@github.com/_username_/repo.git 将密码更改为不使用 ` 字符的密码。工作!!!
【解决方案2】:

我有同样的问题,有一个私人仓库。

执行以下操作:

移除远程原点

git remote rm origin

重新添加来源,但使用您的用户名和密码,并在此 pvt 存储库上具有写入权限

git remote add origin  https://USERNAME:PASSWORD@github.com/username/reponame.git

【讨论】:

  • 密码有@怎么办?
  • @AnupamChugh 您需要将密码中的“@”替换为“%40”。基本上你可以通过运行JS代码encodeURIComponent(password)来检查
  • 我建议使用凭证助手而不是以纯文本形式存储您的密码:help.github.com/articles/caching-your-github-password-in-git
  • 感谢您的帮助!
  • 终于!抓住的是私人回购。如果您有一个私有仓库并通过遵循 Git 中心指令将现有仓库从 Xcode 中的本地推送到 Github 中的远程来解决此错误,则此方法有效:$ git push -u origin master remote: Repository not found. fatal: repository 'https://github.com/teksunios/Abc.git/' not found
【解决方案3】:

我遇到了同样的问题,我通过在 repo url 中包含我的用户名和密码来解决它:

git clone https://myusername:mypassword@github.com/path_to/myRepo.git

【讨论】:

  • 这对我有用,只需添加我的用户名:https://myusername@github.com/path_to/myRepo.git
  • 这行得通,但当然很多人会认为这是一个安全问题;谨慎使用
  • 作为我原评论的后续,一旦你成功推送了一次,你可以使用git remote set-url origin url命令将你的原始URL更改为没有用户名和密码的相同的东西,然后它工作正常。
  • 你刚刚拯救了我的好朋友!干杯!
  • 自 2021 年 8 月 13 日起,github 不再支持此方法,因此此方法将不起作用。
【解决方案4】:

如果您在 Windows 上使用 Git,请尝试清除您的凭据:

  1. 找到“凭据管理器”(应该在您的控制面板中)
  2. 删除所有与 GitHub 相关的凭据

【讨论】:

  • 很好 - 感谢这个成功的提示!顺便说一句,使用以下命令,您可以直接导航到凭据管理器:“control.exe /name Microsoft.CredentialManager”
  • 谢谢,这拯救了我的一天。
  • 这拯救了我的一天!
  • 这行得通,我在 github 上有另一个导致问题的帐户
  • 非常感谢!!对我帮助很大!
【解决方案5】:

我遇到了同样的错误

ERROR: Repository not found.   
fatal: The remote end hung up unexpectedly

我已经在 Github 上创建了存储库并将其克隆到本地。

我能够通过打开 .git/config 并删除 [remote "origin"] 部分来解决。

[remote "origin"]   
   url = git@github.com:alexagui/my_project.git  
   fetch = +refs/heads/*:refs/remotes/origin/*

然后我(再次)运行以下命令

git remote add origin git@github.com:alexagui/my_project.git  
git push -u origin master

这一次我能够推送到存储库。

【讨论】:

  • 您能解释一下您是如何打开 .git/config 并删除 [remote "origin"] 部分的吗?
  • 我来这里是为了寻找类似问题的答案。我从 IntelliJ IDEA 创建了一个新存储库,但在尝试进行初始推送时收到了相同的错误消息。 Alex Aguilar 的回答启发我进入 .git/config 文件并编辑存储库 URL,以便它使用我的用户名和首字母大写,最初它没有这样做。它解决了我的问题。
  • 项目根目录下可以找到.git/目录。
  • 这也解决了我的问题 - 我试图在项目中间切换用户,它打开了一个痛苦的世界
  • @DaviMoreira 你可以通过sudo nano .git/configvim .git/config 打开和编辑你的.git/config。两者都打开一个内联编辑器,第一个你需要你的 sudo 密码。我建议在谷歌上搜索一些关于如何保存和退出其中任何一个的捷径。
【解决方案6】:

我收到了这个错误(但之前可以正常工作)。我的问题是缺少与 Github 帐户绑定的 ssh 密钥。您可以使用 ssh-add -l 检查您当前的 ssh 密钥。

如果您的密钥丢失,您可以使用

添加它
ssh-add ~/.ssh/your_key

【讨论】:

  • 我更改了我的 github 帐户,因此不得不更改我现有的 ssh 密钥。您的修复成功了,谢谢!
【解决方案7】:

我遇到了类似的问题。不正确的凭据被缓存在 OS X 的钥匙串中。

查看:https://help.github.com/articles/updating-credentials-from-the-osx-keychain

【讨论】:

  • 同样的问题。访问私人仓库时我得到remote: Repository not found.。这是因为仍然使用旧凭据连接到 repo(即使在本地 git 配置中使用新凭据)。修复 1) 从钥匙串中移除钥匙。 2)再次在终端中执行命令。 3) 应该询问用户名和密码。
  • 这为我解决了这个问题。核对钥匙串中的凭据,通过 Github GUI 获得一个新的个人访问令牌,并且正在运行,谢谢。
  • @Antoine 的回答是发生在我身上的事情。不幸的是,我在解决问题后发现了这一点。就我而言,我刚刚打开了 2FA(双因素身份验证)(TFA)。这打破了我的密码。所以,我清除了凭据(就像这个页面上的人说的那样),但是用我的密码重新克隆一个 repo 仍然失败(我猜是因为 2FA)。因此,我创建了个人访问令牌 (help.github.com/articles/…) 来代替密码。我只给它 repo 访问权限,因为它在命令行上。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
【解决方案8】:

我使用的是 Mac,但我很难找到解决方案。 我的远程地址是正确的,如前所述,这是凭据问题。 显然,过去我在我的计算机上使用了另一个 Git 帐户,并且 mac 的钥匙串记住了以前帐户的凭据,所以我真的没有被授权推送。

如何解决? 在 Mac 上打开 Keychain Access,选择“所有项目”类别并搜索 git。 删除找到的所有结果。

现在转到终端并尝试再次推送。终端将询问用户名和密码。输入新的相关凭据即可!

希望它会帮助别人。我挣扎了几个小时。

【讨论】:

  • 谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!!!!我已经把头撞在墙上了。
  • 这真的很有帮助。尝试了一切,只是无法理解。 Push,Pull CLone,适用于 IntelliJ,但不适用于终端。清理钥匙串后,它就像魔术一样工作。
  • 对于 macOS,这是唯一对我有用的解决方案。谢谢。
  • @Gal Shahar,你知道你是最棒的。对吗?
【解决方案9】:
git remote rm origin
git remote add origin <remote url>

【讨论】:

  • 为我工作。这个问题是在 git update 之后开始出现的。
  • 这对我有用,方法是用 git@ 切换 https url。
【解决方案10】:

remote: Repository not found. 可能是来自 的令人沮丧的误导性错误消息,当您尝试推送到 您没有写入权限的 HTTPS 远程时。

Check your write permissions on the repository!

尝试使用 SSH 远程访问同一存储库会显示不同的响应:

% git remote add ssh git@github.com:our-organisation/some-repository.git

% git fetch ssh
From github.com:our-organisation/some-repository
* [new branch]        MO_Adding_ECS_configs             -> ssh/MO_Adding_ECS_configs
* [new branch]        update_gems                       -> ssh/update_gems

% git push ssh     
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

“正确的访问权限?”

你为什么不这么说?

此时值得注意的是,虽然此场景中的 SSH 故障模式 稍微更好,我通过 SSH 使用 HTTPS 远程,因为 GitHub recommend HTTPS over SSH.

我了解 GitHub 在某些情况下使用“未找到”表示“禁止” 防止无意中发现私人存在的情况 存储库。

需要身份验证的请求将返回404 Not Found,而不是 403 Forbidden,在某些地方。这是为了防止意外泄漏 私有存储库给未经授权的用户。

--GitHub

这是一种在网络上相当普遍的做法,确实是这样定义的:

404(Not Found)状态码表示源站没有找到 目标资源的当前表示或不愿意 披露存在。

--6.5.4. 404 Not Found, RFC 7231 HTTP/1.1 Semantics and Content(强调我的)

对我来说毫无意义的是,当我使用 GitHub 进行身份验证时 credential helper 并且我有权访问该存储库(已成功克隆和获取 它) GitHub 会选择 对我隐藏它的存在,因为我错过了 写权限。

使用网络检查https://github.com/our-organisation/some-repository/ 浏览器确认我没有存储库的写入权限。我们的 团队的 GitHub 管理员能够在短时间内授予我的团队写入权限 时间,我能够将分支向上推。

【讨论】:

    【解决方案11】:

    如果你的仓库之前工作正常,突然弹出这个错误,很可能是你的 git 被认证为其他用户,没有访问仓库的权限。因此,为了推送,您需要做的就是在您的 git 命令中指定正确的用户名和密码。因此,github repo 的推送命令如下所示:

    git push https://youruser:password@github.com/user/reponame.git
    

    username and password 需要进行 url-escaped,因此 @ 应替换为 %40,依此类推。

    【讨论】:

    • 这对我来说是第一次。我最初是通过从 C:/users/{username} 中删除 .gitconfig 来创建问题的
    【解决方案12】:

    这对我有用:

    1.遥控器

    $ git remote rm origin
    $ git remote add origin git@github.com:<USER>/<REPO>.git
    

    如果您的 SSH 密钥已在另一个 github 代表上使用,您可以生成一个新密钥。

    2。生成新的 SSH 密钥

    $ ssh-keygen -t rsa -b 4096 -C "web@github.com"
    

    3.在 SSH 代理级别添加密钥

    $ eval "$(ssh-agent -s)"
    $ ssh-add ~/.ssh/id_rsa_github
    

    4.将新密钥添加到 Github 存储库。

    【讨论】:

      【解决方案13】:

      如果您属于 Github 中的某个组,请检查您是否具有写入权限。

      【讨论】:

      • 究竟是如何做到这一点的?如果你能添加这样的信息会更完整。
      • 刚刚进入您的 git 存储库并单击任何文件并尝试对其进行编辑。如果您没有写入权限,那么您将显示一些错误,例如“您正在尝试编辑文件.... "
      • 快速检查方法是单击Create new file。如果您收到一条消息说“您正在一个项目中创建一个您没有写入权限的文件”,那么您没有写入权限。
      【解决方案14】:

      一个问题,对于我在这里没有提到的一些人来说可能很明显,可能是您可以使用 ssh 密钥访问,但您正尝试通过 https 将本地存储库连接到远程。

      如果是这种情况,那么以下命令应该可以为您解决问题:

      $ git remote -v
      origin  https://github.com/private-repo.git (fetch)
      origin  https://github.com/private-repo.git (push)
      $ git remote rm origin
      $ git remote add origin git@github.com:private-repo.git
      $ git remote -v
      origin  git@github.com:private-repo.git (fetch)
      origin  git@github.com:private-repo.git (push)
      

      请注意,上述工作假设:

      1. 您当前的遥控器名为origin,并且您已经拥有一个 生成与您的 github 帐户关联的 ssh 密钥

      2. 您已经有一个与您的 github 帐户关联的 ssh 密钥(并在本地连接)

      3. 您在 github 上为此 repo 的设置设置了正确的权限(读/写)。

      【讨论】:

      • 这对我有用。但重大变化是什么?就在前一周它运行良好,这是我多年来一直使用的回购协议。
      • @DylanNissley 也许回购的安全设置改变了?老实说,我不确定。 ://
      【解决方案15】:

      有类似的问题。问题的根源在于我遵循了一些关于向 Github 添加新存储库的在线教程。

      只要去 Github,创建一个新的 repo,它会要求你添加一个 README,不要添加它。创建它,您将获得有关如何推送的说明。

      和下面两行类似:

      git remote add origin https://github.com/YOUR_USER/your-repo.git
      git push -u origin master
      

      【讨论】:

        【解决方案16】:

        我在尝试推送到私有仓库时也遇到了这个错误,但问题不在于仓库是私有的还是公共的,问题是 Github API 现在使用个人令牌进行身份验证和授权。

        以下解决了我的问题:

        1. 移除远程原点:git remote remove origin

        2. 生成个人令牌:您可以在Github Docs 中找到说明。

        3. 使用您的用户名和生成的令牌重新添加来源:

        git remote add origin https://USERNAME:GENERATED_TOKEN@github.com/username/reponame.git

        【讨论】:

          【解决方案17】:

          我在尝试从我之前连接的私有存储库中提取的 MAC 上遇到了同样的问题。

          我通过在 repo url 中包含我的用户名来解决它:

          git remote set-url origin https://<YOUR_USER_NAME_HERE>@github.com/<YOUR_USER_NAME_HERE>/<REPO>.git
          

          然后我就可以从 repo 中提取了。

          对于您要克隆的新仓库:

          git clone https://<YOUR_USER_NAME_HERE>@github.com/<YOUR_USER_NAME_HERE>/<REPO>.git    
          

          它会提示您输入该帐户的密码,然后您就可以继续了。

          【讨论】:

          • 我在 Mac 上,我正在使用一个可以从中提取的私人仓库。不幸的是,这并没有解决我的问题。
          • 感谢您签入。问题是我对 repo 有读取但没有写入权限。
          【解决方案18】:

          这解决了我的问题。

             git pull https://myusername:mypassword@github.com/path_to/myRepo.git
          

          【讨论】:

            【解决方案19】:

            问题:由于某种原因,Github 不熟悉您的存储库。

            错误: 在 git cli 中提示如下:

            远程:未找到存储库。致命的:存储库 未找到“https://github.com/MyOrganization/projectName.git/

            解决方案: 2 个选项

            1. Github 可能不熟悉您的凭据: - 第一个选项是使用正确的凭据克隆项目 user:password 以防您忘记了这个或生成 ssh 令牌并调整此密钥在你的 Github 中。又名git push https://&lt;userName&gt;:&lt;password&gt;@github.com/Company/repositoryName.git

            2. 一些用户的回购权限问题 - 在我的用例中,当我意识到我在 Github 上没有合适的合作者权限时,我解决了这个问题在我的私人仓库中。用户可以克隆项目,但不能对源执行任何操作。为了解决这个问题:

            转到 Github 上的存储库 -> 设置 -> 协作者和团队 -> 添加 成员/维护您的用户 -> 现在他们获得了提交的权限 并推动

            【讨论】:

              【解决方案20】:

              您需要检查您的 SSH 访问权限,如下所示:

              ssh -T git@github.com
              

              这个问题是因为我没有在存储库中添加关于 SSH 的人员响应,请阅读更多关于 SSH link-1link-2 的信息。

              【讨论】:

              • 这显示了多个键的问题和一个不起作用的配置文件。感谢您的提示。
              【解决方案21】:

              遇到过同样的问题。多年来一切正常,然后突然出现此错误。

              问题是我在我的用户的 github SSH 密钥(我总是用来访问有问题的仓库)之前为我的 SSH 代理添加了另一个 repo 的部署密钥。 SSH 代理首先尝试了另一个 repo 的部署密钥,而 GitHub 出于某种完全无法解释的原因说

              ERROR: Repository not found.
              

              从 SSH 代理中删除部署密钥后,一切都恢复正常。

              【讨论】:

              • 这是唯一对我有用的东西,特别是通过运行ssh-add -D。这是在 macOS 上。
              【解决方案22】:

              以下解决了我的问题。

              首先我使用这个命令来确定使用的 github 帐户是什么:

              ssh -T git@github.com
              

              这给了我这样的答案:

              Hi <github_account_name>! You've successfully authenticated, but GitHub does not provide shell access. I just had to give the access to fix the problem.
              

              然后我了解到答案中描述的 Github 用户 (github_account_name) 在我试图拉取的 Github 存储库上没有得到授权。

              【讨论】:

              • 如果我得到这个错误怎么办:The authenticity of host 'github.com (192.30.253.112)' can't be established. RSA key fingerprint is SHA256.... Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts. Permission denied (publickey).
              【解决方案23】:

              这是解决我的问题的方法

              #check current github account
              ssh -T git@github.com
              
              #ensure the correct ssh key used with github
              ssh-agent -s
              ssh-add ~/.ssh/YOUR-GITHUB-KEY
              
              #re-add the origin
              git remote add origin git@github.com:YOUR-USER/YOUR-REPO.GIT
              git push -u origin master
              

              【讨论】:

                【解决方案24】:

                我遇到了同样的问题。请尝试以下操作:

                1. 在 Mac 中为 git 凭据修改 Keychain Access 为我解决了这个问题。
                2. 重置源地址

                git remote rm origin
                git remote add origin git@github.com:account-name/repo-name.git
                

                【讨论】:

                  【解决方案25】:

                  如果你使用https从github克隆,但是你使用ssh推送,也会出现这个错误。

                  要更正此问题,请打开 .git/config 并替换:

                  url = https://github.com/company/project.git

                  url = git@github.com:company/project.git

                  而且你应该能够毫无警告地推送......

                  【讨论】:

                    【解决方案26】:

                    我的一个 Github 存储库遇到了同样的问题。

                    方法:

                    使用SSH 而不是HTTPS,然后push/pull 开始正常工作。

                    【讨论】:

                      【解决方案27】:

                      正如 Alex 上面所说,更改 .git/config 文件的内容会有所帮助。我遇到了同样的问题,我认为这是因为我更改了 Github 用户名。无法使用更改更新本地文件。因此,也许每当您更改用户名时,您可能会考虑运行

                      git remote add origin your_ssh_link_from_github

                      我希望这会有所帮助;)

                      【讨论】:

                        【解决方案28】:

                        如果有人在 github.com 遇到问题,请检查在 repo 所有者允许向您提交后您是否接受了邀请。在您接受邀请之前,您将无法看到 repo。所以你会得到ERROR: Repository not found.

                        【讨论】:

                        • 谢谢,这解决了我的问题。
                        • 同样的事情,我希望错误消息类似于“您没有写入权限”或类似的东西。感谢您指出这一点!
                        • Linus 的软件不是做预期事情的软件。
                        【解决方案29】:

                        我可以解释我是如何陷入类似情况的,然后会列出我为解决此问题所采取的步骤。

                        我正在使用
                        视窗 10,
                        git:git 版本 2.27.0.windows.1。

                        我已经设置了 git 并且正在进行 git push 活动。 Windows 凭据管理器存储用户名和密码,因此您不必在每次 git 远程活动时输入用户名和密码。

                        当我添加另一个github帐户并使用--local git设置时遇到这个问题。几天后,我遇到了 Repository not found 的问题,经过调查我发现:

                        1. 即使您从 Windows 凭据管理器中删除了 git 详细信息,它也会再次保存您输入的用户名、电子邮件详细信息。

                        所以,如果你使用两个 git 帐户,你需要使用 (git bash as an administrator)

                        git config --edit --system 
                        

                        并删除

                        helper = manager 
                        

                        行,使其不再注册为凭证助手。但它会在您每次进行任何远程活动时询问您的登录详细信息。

                        How do I disable Git Credential Manager for Windows?.

                        要检查远程来源,用户详细信息

                        git config --list --show-origin
                        

                        【讨论】:

                          【解决方案30】:

                          只需使用 SSH 远程 URL 而不是 HTTPS

                          【讨论】: