通过 Https 克隆 Github 组织时出现 "remote: Repository not found." 的错误提示。

13

我已经作为个人使用Github有一段时间了。现在我需要创建一个组织并在该组织中开始一个repo。

因此,我以我的身份登录Github,创建了新的组织。然后我创建了一个repo。查看repo,我可以看到我是repo的贡献者。这个repo是私有的,也需要保持私有。

当我尝试克隆时:

$ git clone https://github.com/my-organization/my-repo.git my-repo-folder
Cloning into 'my-repo-folder'...
remote: Repository not found.
fatal: repository 'https://github.com/my-organization/my-repo.git/' not found

本地Git记录了我的凭据,因此例如,如果我有一个储存在个人Github仓库中的私有存储库,那么 git clone https://github.com/Webern/my-personal-private-repo.git 不需要重新输入Github用户名和密码即可工作。

那么组织是怎么回事呢?我该如何克隆新建立的组织的私有存储库?


代码相关内容的翻译:仓库是空的吗?我记得以前在尝试克隆空仓库时遇到过问题,但现在已经过了一段时间。 - Stephen Newell
不,它不是空的,因为我用自述文件和.gitignore进行了初始化。 - Matthew James Briggs
你确定你正确地复制/粘贴了远程地址吗?为了好玩,你试过通过ssh进行检查吗? - Stephen Newell
好的,使用SSH克隆确实起作用了。但是SSH很麻烦,我仍然想了解https出了什么问题。https克隆URL直接复制到剪贴板上,所以我不明白它可能有什么错误。 - Matthew James Briggs
让我们深入兔子洞 :). 你能在新的克隆中更改origin的远程并执行git fetch吗?我从未处理过https上的私有存储库,所以现在只是尝试探索一下。 - Stephen Newell
显示剩余2条评论
3个回答

11

最终,我相信问题与缓存我的Mac的Keychain中的凭据有关。下面是修复问题所采取的完整步骤列表,但我认为关键步骤是使用Mac OS的Keychain Access实用程序删除所有Github凭据。

将用户名和密码添加到https URL中确实有效,但似乎对于长期使用来说不是一个好主意。

MyMac:~ mjb$ git clone https://MyGithubUsername:MyGithubPassword@github.com/my-organization/my-repo.git
MyMac:~ mjb$ cd my-repo
MyMac:my-repo mjb$ git remote set-url origin https://github.com/my-organization/my-repo.git
更改URL,以便不包含我的用户名和密码后,我仍然无法连接到远程计算机。
MyMac:my-repo mjb$ git push origin --all
remote: Repository not found.

现在我对 Git 配置进行了一堆摸索,虽然我想这可能是不必要的。

MyMac:my-repo mjb$ git config --global user.name MyGithubUsername

MyMac:my-repo mjb$ git --version
git version 2.15.0

MyMac:my-repo mjb$ git config --global credential.helper manager
MyMac:my-repo mjb$ git push origin --all
remote: Repository not found.
fatal: repository 'https://github.com/my-organization/my-repo.git/' not found
MyMac:my-repo mjb$ git config --global --unset credential.helper
MyMac:my-repo mjb$ git push origin --all
remote: Repository not found.
fatal: repository 'https://github.com/my-organization/my-repo.git/' not found

现在我在我的Mac上进入了工具->钥匙串访问
我删除了与Github相关的所有凭据。
奇怪的是,这些凭据是正确的,当我再次输入用户名和密码时,我输入的是相同的用户名和密码。

MyMac:my-repo mjb$ git push origin --all
Username for 'https://github.com': MyGithubUsername
Password for 'https://MyGithubUsername@github.com': MyGithubPassword
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 651 bytes | 651.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)

成功。


1
你救了我的一天。我将一个仓库移动到了我拥有的组织中,但在使用 set-url 更新 origin URL 后,我无法将其推送到该仓库。我所做的是再次使用 git clone https://myusername@github.com/... 拉取仓库,它提示输入密码并成功拉取。我取消了拉取,从钥匙串中删除了其他凭据条目(除了新的 login 条目),最终我又可以用 SourceTree 推送了。谢谢! - Martin Braun
对于Linux用户,您可以使用ssh-add -D命令删除缓存的SSH凭据。 - Dan R

3
如果您已经启用了GitHub帐户的访问令牌,请确保在“开发人员设置”->“个人访问令牌”下勾选整个repo设置,如此处所示(第7步)。启用repo类别中的所有子选项是不够的。
对我而言,这就解决了问题。无需在任何地方重置您的凭据。
我只启用了public_repo选项,这足以克隆和推送到我的公共存储库,但无法访问我担任管理员角色的组织中的私有存储库。
错误信息非常晦涩和误导,特别是当您确定拥有所有访问权限时。

0

我的怀疑:

  • 你的私有仓库可能有额外的安全层,请确认你没有启用双重身份验证或其他安全设置。否则,每次尝试推送时都会出现错误或登录凭据错误。

但在你的情况下,你正在尝试克隆,请确保你使用的是与组织仓库和个人仓库相同的凭据(特别是电子邮件),这可能是权限问题。Git 可能认为你输入的凭据没有访问该仓库的权限。


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