Git - remote: 未找到仓库

444

我有本地工作副本的SourceTree。所有操作都很好,我可以通过SourceTree轻松地进行获取、推送、拉取等操作。我只需要进行强制推送,但在SourceTree中不存在此选项。

我打开终端并执行了git push -f。

remote: Repository not found.
fatal: repository 'https://github.com/MyRepo/project.git/' not found

我不确定有什么问题。


可能是Git Push ERROR: Repository not found的重复问题。 - Michael Freidgeim
如果出现访问相关问题,或者您在本地Git客户端中登录了不同的帐户,请查看此干净的解决方案-https://dev59.com/CFoU5IYBdhLWcg3w_KmO#52816828 - Avisek Chakraborty
32
对于任何使用个人访问令牌访问的其他人,请在“设置->开发者设置->个人访问令牌”中确认“write.packages”已选中。这是我的问题所在。 - kevin_theinfinityfund
1
kevin_theinfinityfpnd的回答对我有用。谢谢。 - ashishn
1
我的解决方案是通过网页直接在github.com上创建仓库。之后一切都很顺利。我一直以为仓库会通过这里讨论的各种命令来创建。但事实并非如此。你必须通过网页创建仓库,然后尝试做你通常做的其他事情。 - Puneet Lamba
显示剩余7条评论
62个回答

455

从系统中删除所有关于github.com的凭据信息。

适用于Mac:

从Keychain Access中删除github.com的密码。

适用于Windows:

从Credential Manager中删除凭据信息。


22
在Mac上这是正确的。我从Keychain Access(一个应用程序)中删除了所有涉及“github”的内容,然后在尝试推送时,它会在命令行上提示我输入我的凭据。 - Ryan
7
“ALL” 意味着全部,即使它说“web”。 - Max
10
警惕这个操作。现在我无法通过命令行进行任何身份验证,即使是之前完全正常的存储库也是如此。 - Ben
3
你能分享给我Ubuntu吗? - Kannan T
2
大家好,这个方法有效是因为钥匙串密码有时会记住来自不同 GitHub 帐户的密码,一旦你从钥匙串(Mac)中删除了它,第一次推送时它会要求输入用户名和密码,然后像魔术一样它就能工作了,并且密码将在钥匙串中得到更新。谢谢 @Zeeshan。 - Blu3
显示剩余10条评论

294
请查看下面适用于 Windows 的工作解决方案:
  1. 从开始菜单中打开控制面板。
  2. 选择用户帐户。
  3. 选择“凭据管理器”。
  4. 单击“管理 Windows 凭据”。
  5. 删除与 Git 或 GitHub 相关的任何凭据。
  6. 删除所有凭证后再尝试克隆。

enter image description here


很好的答案!我只想补充一点,在大多数情况下,仅删除“有问题”的那一行就足够了,无需全部删除。 - Shaya
3
在我的情况下,我只是编辑了Git的凭据。将Github电子邮件设置为用户名和密码。然后它就可以工作了。 - Tariqul Islam
1
您还可以在钥匙串中编辑凭据以适应当前的Github帐户。它同样有效。 - blakroku
我与git没有任何关系。 - Stepan Yakovenko

127

我也遇到了同样的问题。

remote: Repository not found
fatal: repository 'https://github.com/MyRepo/project.git/' not found

我卸载了git凭据管理器,重新安装后就可以轻松地拉取和推送到代码库。以下是命令:

$ git credential-manager uninstall

$ git credential-manager install

114
git:"credential-manager"不是git命令。请参阅“git --help”。 - filiphl
2
@filiphl 请查看Zeeshan Ansari的回答。 - jiexishede
22
移除失败。U_U - Slick Slime
4
尽管使用了 $ 符号,但这可能只适用于 Windows 操作系统。对我来说,这个修复方法完美地解决了问题。我还检查了 git --help 命令,的确没有列出 credential-manager,但那不是完整的列表。git help -a 命令中确实有“credential”作为一个命令。总之,这个修复方法很好用。 - J. Gwinner
1
在Windows上对我有用,非常有帮助的答案。 - anhoppe
显示剩余4条评论

108

这个信息出现在找到了一个代码库,但我们没有提交权限的情况下。措辞不够优雅!

我在克隆我的老板为我创建的 gitHub 代码库后收到了“未找到代码库”的消息。我可以在本地克隆和提交,但无法将提交推送到远程代码库。代码库所有者没有给我写入权限。通过请求代码库所有者赋予我写入权限来解决此问题。


7
有时候,GitHub 会返回“找不到仓库”的信息提示,表示你没有权限,而不是权限未被授予。 - Imran Javed
4
这对我来说也是一样的。希望他们能有比这更好的错误提示信息。 - madu
4
这可能是有意为之的,因为GitHub(以及其他一些网站)在尝试访问权限不足的存储库时也会返回404。对于许多网站来说,这是一种额外的安全(或者更确切地说是隐私)措施,用于防止爬虫或暴力破解攻击。 - j3141592653589793238
这应该是答案1,易于修复,无需更改任何本地git设置。 - Andrei
2
对于任何使用个人访问令牌进行访问的其他人,请在“设置->开发人员设置->个人访问令牌”中检查并确认选中了“write.packages”。这是我的问题。 - kevin_theinfinityfund

89

因为您可能尚未在终端中标识远程 Git 存储库。

git remote set-url origin https://github.com/MyRepo/project.git

或者如果你正在使用SSH;

git remote set-url origin git@github.com:MyRepo/project.git

然后,

git add .
git commit -m "initial commit"
git push origin master

20
如果您正在使用SSH,您需要这样设置URL:git@github.com:MyRepo/project.git - Fergus
这个方法真的有效。对我来说,凭据管理器“答案”没有任何影响。谢谢你。 - Bobdabiulder
1
@Fergus 一直都知道该怎么做。我不愿意去动我的凭证管理器,所以在开始尝试修改 Windows 凭证管理器之前,我决定先尝试其他合理的建议。使用 SSH 而不是 HTTPS 解决了我的问题。谢谢 Fergus。 - wandesky
这个对我来说非常简单易懂,感谢你提供的简单答案。 - DL Studio
这个解决方案通常应该有效,但偶尔可能需要从Windows用户的凭据管理器或Mac用户的钥匙串访问中删除GitHub凭据。 - Rehan Shakir

76

添加“个人访问令牌”

自2021年以来,Github支持PAT,而不是用户名和密码(请在此处了解如何创建和使用),因此我们只需将其添加到远程origin中即可。

在Windows上

  1. 访问.git文件夹并打开config文件进行编辑。例如:vim config
  2. 将您的URL从
    https://github.com/<username>/<repo_name>.git
    更改为
    https://[personal-access-token]@github.com/<username>/<repo_name>.git
    其中[personal-access-token]是您在GitHub上创建的PAT哈希值
  3. 保存config文件,现在推送应该可以工作了。

快捷方式:

git remote remove origin
git remote add origin https://[personal-access-token]@github.com/username/repo_name.git

更新

生成令牌时,如果您希望其长时间有效,请选择无过期时间输入图像描述


那曾经有效,但现在不再有效了。即使使用具有所有可能权限的令牌,我也无法将代码推送到自己的Github。 - Alex
@Alex,你检查了令牌的生命周期吗?可能只有一周或30天...看看我的更新 - Igor Savinkin
当然,我甚至创建了一个拥有所有权限的新令牌,并在1分钟后使用它。 - Alex
@Alex,除了PAT以外,可能还有其他问题吗? - Igor Savinkin
对我来说这个方法可行: git remote set-url origin https://$GITHUB_ACCESS_TOKEN@github.com/<user>/<repo>.git 其中环境变量 GITHUB_ACCESS_TOKEN 被设置为 Github Token。 - villamejia
这是正确的答案。您需要访问令牌作为URL的一部分。 - h0r53

60

对于Linux用户:

git remote rm origin

git remote add origin https://GITHUB_USERNAME:PERSONAL_ACCESS_TOKEN@github.com/GITHUB_USERNAME/REPO_NAME.git

生成新的令牌


9
这对我有用,但我必须将“PASSWORD”替换为“ACCESS_TOKEN”。您可以通过访问“Github > 设置 > 开发人员设置 > 个人访问令牌 > 生成新令牌”来生成“ACCESS_TOKEN”。给它一个名称并勾选REPO。 - Caio Mar
同样适用于Windows。请注意,密码支持已于2021年8月被移除,因此您需要使用访问令牌。 - Blueriver
这个工作得很好,完美无缺! - Ismael Terreno
@uber在添加GitHub用户名时不需要用户的用户名。 - johnson
对我来说很有效,我正在使用Mint Linux。帮我解决了问题,兄弟。谢谢。 - undefined

50

问题在于您的本地git无法将更改推送到远程仓库。请检查您的远程设置是否正确:

git remote -v

如果没有正确设置,请尝试将您的遥控器设置为

git remote set-url origin https://username@github.com/MyRepo/project.git

然后尝试使用推送

git push -u origin master

另外,您的本地git可能有不同的凭据,请也检查一下。


11
我已经苦苦挣扎了一段时间。对我来说诀窍是在网址中添加我的用户名。然后我会被提示输入密码,然后就可以使用了。 - Mark Lummus
1
这个简单的修复方法对我也起了作用,而无需费心去删除现有的凭据等。在我最初向仓库推送时,系统要求我输入密码并添加了我的存储库特定令牌。自那以后一切都运行良好。 - Bobbie E. Ray
相同。将用户名添加到URL中以在Sourcetree中修复它。 - KulaGGin
对我来说,我一直在使用Azure DevOps,但由于某种原因,在“管理远程”窗口中,获取和推送URL不同,尽管它们是长字符串,但我没有注意到小窗口中的差异。一旦我使用了“git remote -v”,就能看到完整的字符串不相同。将它们匹配起来就解决了问题。 - ScottSto
它不再起作用了,GitHub已经移除了密码认证的支持。 - d3vmak
请记住,您将在VSCode上收到提示以添加密码。但是您必须添加您的PAT。谢谢! - user11129457

36

在Windows上:

  1. 进入.git文件夹
  2. 使用记事本或其他编辑器打开“config”文件
  3. 将您的URL从https://github.com/username/repo_name.git更改为https://username:password@github.com/username/repo_name.git

保存并推送代码,它将正常工作。


2
这也适用于Linux! - Sujay Kundu
是的,理想情况下应该这样!@SujayKundu - Akshay Sahai
2
谢谢,对我来说在 Mac 上也起作用。 - Amr Abdalrahman
5
2021年8月13日,停止支持密码验证方式。 - Rafael Herscovici
1
这是在 macOS 上对我有效的方法。这是唯一能触发新访问令牌请求的事情。谢谢! - undefined

30

在Mac上

如果您正在尝试克隆存储库...那么这个问题可能是因为您在钥匙串访问中没有存储你的github账户。为了解决该问题,请尝试使用帐户名称进行克隆,如下所示:

git clone https://username@github.com/org/repo.git

替换

  • 将username替换为您的GitHub用户名
  • 将org替换为您的组织名称
  • 将repo替换为存储库名称

请注意,此方法已被弃用,很快将不再起作用。请参考以下指南获取更多信息:https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ - Peter Wauyo

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