Git推送错误:仓库未找到。

660

我在使用 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

有任何想法吗?


7
是的,这就是我得到 git remote add origin git@github.com:account-name/repo-name.git 的方式。它存在于GitHub上,是一个私有仓库。 - Justin
2
你改过你的 GitHub 用户名吗? - Ankit
1
你尝试过以下10个答案都没有解决你的问题吗? - dhaval
4
这是否与仓库的读写权限有关?我的仓库只允许读取,当我尝试推送一些内容时就会收到这条消息。请问是否有任何机会解决这个问题? - Michael
6
我遇到了同样的问题,我通过更新.git/config文件来解决它。我将用户名放在[remote "origin"]部分的URL键中。 - Ahmed Jehanzaib
显示剩余6条评论
70个回答

5

我可以解释如何进入类似的情况,并列出我采取的解决此问题的步骤。

我正在使用:
Windows 10操作系统,
git版本:git version 2.27.0.windows.1。

我已经设置好了git并在进行git push操作。Windows凭据管理器会保存用户名和密码,所以您不必为每个git远程操作输入用户名和密码。

遇到这个问题是因为当我添加另一个github帐户并使用本地git设置时。几天后,当我遇到“仓库未找到”的问题时,调查后发现:

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

因此,如果您要使用两个git帐户,则需要使用(管理员身份的git bash)。

git config --edit --system 

并删除
helper = manager 

将行取消注册为凭证助手。但是每次进行任何远程操作时,它都会要求您输入登录详细信息。

如何在Windows上禁用Git凭证管理器?.

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

git config --list --show-origin

4

如果有人在github.com遇到了问题,请检查是否在repo所有者允许你提交后接受了邀请。在您接受邀请之前,repo对您将不可见。因此,您将收到“ERROR: Repository not found.”的错误提示。


谢谢,这解决了我的问题。 - Glen
1
同样的问题,我期望错误信息应该是类似于“您没有写入权限”之类的。感谢您指出这一点! - Miguel Péres
Linus开发的软件并不是一个按预期运行的软件。 - Nakilon

4

我的情况是因为我在另一个GitHub帐户中添加了相同的SSH密钥。检查和修复步骤如下:

  1. 检查:运行命令 ssh -T git@github.com,如果显示正确的用户名,则问题不同。如果显示另一个帐户,则进行第二步。
  2. 去另一个帐户并删除那里的SSH密钥。
  3. 为不同的帐户使用不同的密钥。Github真的会混淆它们。

4
如果您确定已经拥有此仓库的 SSH 访问权限,请执行以下操作:
git clone https://myusername@github.com/path_to/myRepo.git

4
通常这种情况是因为项目是私有的,你没有写入权限。我也遇到过几次同样的“问题”,都是因为这个原因。 如果这个项目是你的,只需按照此链接创建一个私钥和公钥:https://docs.github.com/zh/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent ,然后将它们添加到 gitHub 的“SSH and Key”部分,然后就能推送到仓库了。另一方面,如果这个项目不是你的,请向所有者请求写入权限。

4
改变.git/config文件的内容可以帮助解决问题,就像Alex上面说的那样。我也遇到了同样的问题,我想这是因为我改变了我的Github用户名。本地文件无法更新更改。所以也许每当你改变你的用户名时,你需要考虑运行: git remote add origin your_ssh_link_from_github 希望能有所帮助 ;)

4

我的解决方案是这样的:

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

与Emi-C的答案类似,但不需要密码。

或者你可以在.git/config文件中的[remote "origin"]下直接编辑URL。 - Tony O'Hagan

3

在执行此操作之前,请确保您对该存储库拥有写入权限。如果仍然出现错误,请执行以下操作:

  1. 从“设置”>“开发人员设置”>“个人访问令牌”中生成一个个人访问令牌,并将其安全地保存在某个地方。

  2. 转到您的存储库并运行以下命令:

    git remote rm origin

  3. 然后添加一个新的起点以及您的用户名:

    git remote add origin https://USERNAME@github.com/REPOSITORY_LINK.git

  4. 现在当您推送代码时,将弹出一个提示框要求输入密码或个人访问令牌。在第一步中生成的令牌粘贴到字段中即可完成


3
eval "$(ssh-agent -s)"

这是我的自己的repo - 应该有足够的访问权限。对于其他repo,我能够轻松地拉取和推送。问题解决了,重新启动ssh-agent即可。我使用的是macOS操作系统。


2

我曾经遇到过这个问题,并意识到我使用的是与该仓库不同的账户。以原始用户身份登录解决了这个问题。


在我的情况下,我设置了2个帐户并在 .ssh/config 中添加了别名工作和个人的条目,然后忘记了它。因此,在项目目录的 .git/config 中更改原始部分,以便我使用工作而不是 'github.com' 解决了这个问题。问题是,在克隆时我使用了 git@github.com:blahblah 而不是 git@work:blahblah。 - sourabh

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