Git Push错误:未找到存储库


355

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

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

有任何想法吗?


2
是的,这是我的办法git remote add origin git@github.com:account-name/repo-name.git。它存在于GitHub中,是一个私有仓库。
贾斯汀

1
您是否仔细检查了用户名和存储库名称?
科学家2012年

2
您是否更改了github用户名
Ankit 2012年

2
这是否与回购上的读/写权限有关?我有一个只读存储库,当我尝试推送内容时收到此消息
Michael

3
我有同样的问题。我通过更新.git / config文件解决了它。我将用户名放在该[remote "origin"]部分的URL密钥中。
艾哈迈德·杰汉扎布

Answers:


512

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

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

将我添加到项目中的人向我授予了对存储库的只读访问权限。他们的改变使我得以推动。


290
一定喜欢那些有用的Git错误消息。找不到我刚刚从中克隆的存储库,是吗?说谎者。
Grant Birchmeier

在这里是同样的问题-没有提交权限,您会得到这个非常混淆的错误消息<
sigh

12
@GrantBirchmeier,我想对您的评论进行100次投票。
Technophyle

16
谢谢!您可以通过在网络上查看项目并单击“新建文件”来检查此内容
Ronnie

2
因此,对我来说,我的密码中包含一个`(勾号),并且PhpStorm在发送git push之前删除了该字符:可以说,在这个示例中,我的密码是_pa``ssword_ Phpstorm会输出以下内容: https://_username_:_password_@github.com/_username_/repo.git 而不是将 https://_username_:_pa``ssword_@github.com/_username_/repo.git 密码更改为不使用`的内容字符。作品!!!
鲁本·阿雷瓦洛

128

我遇到了同样的问题,并通过在回购网址中添加用户名和密码来解决了该问题:

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

29
这通过添加我的用户名为我工作:https://myusername@github.com/path_to/myRepo.git
2014年

5
这可行,但是当然很多人会认为这是一个安全问题;谨慎使用
Alexander Mills

这对我有用。我以前曾将Git Bash用于其他帐户,却无法弄清楚如何更改帐户,所以可以了。不喜欢,但是可以。
哈特利·桑

1
作为我的原始评论的后续内容,一旦成功推送一次,您就可以使用该git remote set-url origin url命令将原始URL更改为没有用户名和密码的相同内容,然后可以正常使用。
哈特利·桑

1
你刚刚救了我的好朋友!干杯!
Eldho Paul Konnanal

105

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

请执行下列操作:

删除远程原点

git remote rm origin

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

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

12
如果密码带有@怎么办?
AnupamChugh 18/09/24

16
@AnupamChugh,您需要在密码中将“ @”替换为“%40”。基本上,您可以通过运行JS代码进行检查encodeURIComponent(password)
elquimista

1
我建议您使用凭据帮助程序,而不要使用纯文本形式存储密码:help.github.com/articles/caching-your-github-password-in-git
Johnsyweb

2
谢谢您的帮助,没有任何麻烦!
马坦·达罕

4
最后!抓住是为私人回购。如果您有一个私有存储库,并按照Git集线器说明将现有存储库从Xcode中的本地存储库推送到Github中的远程存储库,则此错误$ git push -u origin master remote: Repository not found. fatal: repository 'https://github.com/teksunios/Abc.git/' not found
起作用

67

我遇到了同样的错误

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

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


3
您能否解释一下如何打开.git / config并删除[remote“ origin”]部分?
Davi Moreira

我来这里是为了寻找类似问题的答案。我已经从IntelliJ IDEA创建了一个新的存储库,但是当我尝试进行初始推送时却收到了相同的错误消息。Alex Aguilar的回答启发了我进入.git / config文件并编辑存储库URL,以便它使用我的用户名并带有大写的首字母,而最初并不这样做。它解决了我的问题。
Vallle 2013年

.git/目录可以在项目的根目录中找到。
2015年

这也为我解决了问题-我试图在项目中间切换用户,这带来了痛苦的世界
gotofritz

为什么那是必要的?我更改了用户名,现在面临各种各样的问题。
HighOnMeat

45

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

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

在此处输入图片说明


3
很好-感谢您的成功提示!顺便说一句,使用以下命令,您可以直接导航到凭据管理器:“ control.exe / name Microsoft.CredentialManager”
克里斯

谢谢,这拯救了我的一天。
艾米(Amy)

这挽救了我的一天!
mvermand

1
这里唯一对我
有用的

这行得通,我在github上还有一个帐户导致了问题
Mokhtar Ashour,

27

我收到此错误(但在工作之前)。我的问题是与Github帐户绑定的ssh密钥丢失。您可以使用来检查当前的ssh密钥ssh-add -l

如果您的钥匙丢失,则可以添加

ssh-add ~/.ssh/your_key

2
我更改了github帐户,因此不得不更改现有的ssh密钥。您的修复成功了,谢谢!
Thomas Potaire 2013年

最适合我的解决方案。谢谢!
多米尼克·保罗

23

我有一个类似的问题。错误的凭据已缓存在OS X的密钥链中。

签出:https : //help.github.com/articles/updating-credentials-from-the-osx-keychain


3
同样的问题。remote: Repository not found.访问私人存储库时我得到了。这是因为仍然使用旧凭据(甚至在本地git config中使用新凭据)连接到存储库。修复1)从钥匙串中取出钥匙。2)再次在终端中执行命令。3)应询问用户名和密码。
Nik Kov

2
这为我解决了这个问题。核对了钥匙串中的凭证,通过Github GUI获得了新的个人访问令牌,并且可以运行了,谢谢。
安东尼

@Antoine的答案是我发生了什么。不幸的是,我在解决问题后发现了这一点。就我而言,我只是打开了2FA(两因素身份验证)(TFA)。这破解了我的密码。因此,我清除了凭据(就像本页上的人说的那样),但是重新克隆回购协议仍失败了,但密码却没有(我猜是由于2FA)。因此,我创建了个人访问令牌(help.github.com/articles/…)来代替密码。我仅在命令行中才给予它回购访问权限。
cwingrav


17

我使用的是Mac,但我一直努力寻找解决方案。我的远程地址是正确的,并且如上所述,这是一个凭证问题。显然,过去我在计算机上使用了另一个Git帐户,而Mac的Keychain记住了先前帐户的凭据,因此我确实没有被授权进行推送。

怎么修?在Mac上打开“ 钥匙串访问 ”,选择“所有项目”类别,然后搜索git。 删除找到的所有结果。

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

希望对别人有帮助。我奋斗了几个小时。


1
谢谢谢谢谢谢谢谢谢谢!!!!! 我已经把头撞在墙上了。
potibas

这确实有帮助。尝试了一切,只是不明白。Push,Pull CLone在IntelliJ中有效,但在Terminal中无效。清洁钥匙扣后,它就像魔术一样工作。
Achyut

对于macOS,这是唯一对我有用的解决方案。谢谢。
尼拉

14

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

检查您对存储库的写入权限!

尝试到同一存储库的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 建议使用SSH 上的HTTPS

我了解GitHub在某些情况下使用“未找到”的意思是“禁止”,以防止无意中发现私有存储库的存在。

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

- GitHub上

这是网上相当普遍的做法,实际上它的定义是:

404(未找到)状态代码表示原始服务器未找到目标资源的当前表示,或不愿意透露该资源的存在。

- 6.5.4。找不到404,RFC 7231 HTTP / 1.1语义和内容(重点是我的)

对我来说没有意义的是,当我使用凭据帮助程序 通过GitHub进行身份验证 并且可以访问该存储库(已成功克隆并获取该存储库)时,由于缺少写入权限,GitHub会选择向我隐藏其存在。

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


10

如果您的存储库在此之前正常运行,并且突然出现此错误,则很可能是您的git已通过其他用户身份验证,而该用户无权访问存储库。因此,为了进行推送,您所需要做的就是在git命令中指定正确的用户名和密码。因此,用于github存储库的push命令如下所示:

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

username and password需要转义网址,因此@应该用%40代替,依此类推。


这是第一次为我工作。我最初是通过从C:/ users / {username}删除.gitconfig来创建问题的
Mike Upjohn,

9

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


1
那到底是怎么做到的?如果可以添加这样的信息,它将更加完整。
Renato返回

2
刚进入您的git存储库,然后单击任何文件并尝试对其进行编辑。如果您没有写访问权限,则将显示一些错误,例如“您正在尝试编辑文件....”
mohor chatt

3
快速检查方法是单击Create new file。如果收到消息“您正在无权访问的项目中创建文件”,则您无权访问。
wisbucky

8

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

只需转到Github,创建一个新的仓库,它会要求您添加自述文件,请不要添加它。创建它,您将获得有关如何推动的说明。

它类似于接下来的两行:

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


8

那对我有用:

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存储库中。


7

一个问题,对于某些我可能没有看到的显而易见的问题,可能是您可以使用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,并且您已经有一个生成的ssh密钥与您的github帐户连接

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

  3. 您具有在github上为此仓库的设置设置的正确权限(读/写)。


这对我有用。但是,重大变化是什么?就在前一周,它的运行情况还不错,这是我多年以来的一项回购协议。
Dylan Nissley

@DylanNissley也许回购的安全设置已更改?老实说,我不确定。:/
John Donner '18

6

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

ssh -T git@github.com

这个问题是因为我没有在存储库中的SSH上添加人员响应,请详细了解SSH的link-1link-2


这显示了多个键和配置文件不起作用的问题。谢谢你的提示。
dis

5

以下为我解决了这个问题。

首先,我使用此命令确定使用的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_account_name)中描述的Github用户在我尝试提取的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).
Nik Kov

5

这是解决我的问题的方法

#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

4

如果有人在github.com上遇到问题,请在回购所有者允许对您的提交后检查您是否接受了邀请。在您接受邀请之前,回购将对您不可见。所以你会得到ERROR: Repository not found.


谢谢,这解决了我的问题。
格伦(Glen)

1
在这里也是一样,我希望错误消息是类似“您没有写权限”之类的东西。感谢您指出了这一点!
米格尔·佩雷斯(MiguelPéres)

Linus的软件不是可以完成预期工作的软件。
Nakilon '18

4

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

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

远程:找不到存储库。严重的:找不到存储库' https://github.com/MyOrganization/projectName.git/ '

解决方案: 2个选项

  1. Github可能不熟悉您的凭据: -第一种选择是使用正确的凭据克隆项目,user:password以防万一您忘记了此操作,或者生成ssh令牌并在Github中调整此密钥。又名git push https://<userName>:<password>@github.com/Company/repositoryName.git

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

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


3

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

git remote add origin your_ssh_link_from_github

我希望这有帮助 ;)



3

如果您使用克隆github,https但又使用ssh了push,那么您也会收到此错误。

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

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

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

而且您应该能够在没有警告的情况下进行推送...


2

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

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

ERROR: Repository not found.

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


2

我遇到了这个问题,意识到我正在使用与回购不同的帐户。以原始用户身份登录即可解决此问题。


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

2

如果使用私有存储库,请检查您的连接用户,它必须具有使用存储库的权限。


1

我有同样的问题。我的问题是误解,我必须先在github上创建空仓库,然后再推送到仓库。h!在这里把它包括给其他没有意识到的人。


1

转到您的项目文件夹,然后搜索.git文件夹,然后使用记事本打开配置文件,并检查是否有指向github repo的链接:[remote“ origin”],如果它与您的github中的repo不同,然后只需对其进行编辑,或使用配置文件中的名称打开一个新的仓库


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.