Git克隆 - 仓库未找到

206
git clone <url>

显示错误信息:fatal: 代码库 'url' 未找到。

我尝试了链接中提到的选项,但没有起作用。


你的URL肯定是无效的。 - g-newa
2
这是一个私有库还是公共库?- 如果是私有库,请尝试使用HTTPS地址而不是GIT地址。(我希望你不要做@JohnZwinck说的那样...) - appostolis
如果该仓库是公开的,您能否编辑您的问题并添加相应的URL? - jub0bs
嗨Jubos,这是一个私有仓库,我有访问权限。 - Max
39
我曾遇到类似的情况。 我使用的私人仓库URL是正确的,但我收到了相同的错误信息。 经过深入挖掘,我发现在钥匙串(我正在使用Mac Yosemite)中,github.com的条目保存了旧的密码。 我删除了钥匙串中的该条目,然后运行了git clone命令。 它要求我输入github用户名/密码,然后克隆就成功了! - Shirish Kumar
显示剩余2条评论
32个回答

488

正如其他人提到的那样,如果网址错误会出现错误。

然而,如果存储库是私有的并且您没有访问权限或凭据错误,也可能会出现错误。

尝试使用以下命令而不是

git clone https://github.com/NAME/repo.git

git clone https://username:password@github.com/NAME/repo.git


您也可以使用以下命令

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

Git 将提示输入密码 (感谢 leanne 在评论中提供了此提示)。


4
谢谢,这很有用。我在我的系统中只遇到了这个问题,但是无法弄清楚原因。使用第二种方法可以解决,但我很好奇为什么,以及是否需要继续使用这种方法?第一个命令出现问题的原因是什么,而第二个命令却没有问题? - Levon
4
在Mac OS X上,您可以将用户名和密码存储在Keychain中(例如GitHub),这样您就不需要第二个命令。如果没有这样的内容,您就需要使用第二个命令。 - Christian Fries
9
@CCJ,是的:除了:password之外,您可以在命令中输入所有内容,Git会提示输入密码。例如:git clone https://username@github.com/NAME/repo.git - leanne
5
如果您开启了双重认证,应该使用访问令牌代替密码 - 参见:https://dev59.com/rGEh5IYBdhLWcg3w5283 - Pawel Gorczynski
1
不再工作: “密码认证支持”已于2021年8月13日移除。 - Kutalia
显示剩余10条评论

50

在 macOS 上,Git 检索的 Keychain 中缓存的凭据可能是错误的。

可能是密码过期了,也可能使用了错误的凭据。

要更新存储在 OS X Keychain 中的凭据

请按照以下说明操作:

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

如果您想验明此问题是否正确,请使用跟踪运行克隆命令。

$ GIT_CURL_VERBOSE=1 git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY

查找标题行 "Authorization: Basic BASE64STRING"。
取出base64字符串并将其解码以检查使用了哪个用户名:密码。

$ echo <the key> | base64 --decode

请确认您所使用的用户名和密码是否正确。


我尝试了一下,它给了我另一个账户的用户名和密码。我猜我需要指定用户名... - Nicolas Miari
2
这个GIT_CURL_VERBOSE=1太有用了 - 谢谢! - mistertee
如果你发现你的用户名/密码不正确,如何让git使用另一个? - toancaro
1
macOS 的钥匙串可以存储多个 GitHub 登录信息。如果您想指定使用哪一个账户,请在 GitHub URL 中添加 username@。例如:https://username@github.com/foo/bar.git,这样 macOS 的钥匙串就会使用正确的登录密码。 - wisbucky

45

如果您的Git代码库是私有的,请尝试以下操作

git clone https://<USERNAME>:<PASSWORD>@github.com/<USERNAME>/<REPO_NAME>.git

注意:如果您在密码中使用@符号,请使用'%40'替换'@'

否则,请使用此方法

git clone https://github.com/<USERNAME>/<REPO_NAME>.git

----更新:----

现在在克隆URL中使用密码已经过时,应该像下面这样使用个人访问令牌:

设置 -> 开发人员设置 -> 个人访问令牌 -> 生成新令牌

git clone https://<Token>@github.com/<USERNAME>/<REPO_NAME>.git

这是一种好的做法,但可能会导致凭证被盗。 - Muneeb Ahmad Khurram
3
最后一条命令中,在<Token>后面应该加上@ - TrigonaMinima
在Mac上,它可以不需要用户名就能工作,只需使用"git clone https://<Token>@github.com/<REPO_NAME>.git"即可。 - Akhilesh Sinha

41
如果您使用的是Windows操作系统,且存储库为私有,并且曾经保存过不正确的凭据或已失效的凭据,那么您将无法访问该存储库。在失败的凭据指示中,您将收到找不到错误提示。为了重置Windows上的凭据,请打开控制面板(Win+r 控制),选择用户帐户和凭据管理器,或在开始菜单中搜索"凭据管理器"。在Windows凭据(而非Web凭据)中定位git帐户并删除该条目。
之后,克隆操作将弹出登录对话框,您将能够重新设置这些凭据。
此方法已在git-bash下进行了测试。

其他语言版本

在开始菜单中搜索:

  • 英文:"Credential Manager"
  • 荷兰文:"Referentiebeheer"
  • 德文:"Anmelde Informationsverwaltung"
  • 韩文:"자격 증명 관리자"

1
那解决了我的Windows问题。删除凭据并重新登录。 - Teebu
1
在韩语中,"자격 증명 관리자"。 - HyoJin KIM

32

如果您的Github账户启用了两步验证(2FA),请使用SSH选项来克隆您的存储库:

输入图像描述


28

我也遇到了同样的问题(“存储库未找到”),因为最初我使用错误的GitHub帐户登录。要解决这个问题:

  1. 从“开始”菜单打开控制面板。
  2. 选择用户账户。
  3. 在左侧菜单中选择“管理您的凭据”。
  4. 删除与Git或GitHub相关的任何凭据。

1
这对我解决了问题。我有多个Github账户,因此在Windows中,有时git凭据会被缓存到Windows凭据管理器中的其他账户中。清除缓存的账户可以解决此问题。 - Grizzly Peak Software
这个错误的账户(缓存的账户)可能没有权限查看仓库,因此Github/Gitlab会返回404未找到错误。 - mrdaliri
404错误代替未授权错误。这个错误信息很容易误导人。感谢您的帮助。它对我也有用 :) - Diallo

26

对于我来说

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

工作。

我认为这主要是因为私有仓库无法直接访问。


不幸的是,这个解决方案已经不再适用了... 这是我在尝试时收到的消息:支持密码认证已于2021年8月13日被移除。 - RSW
谢谢!对我有用,其他解决方案都说要输入密码,这是相当危险的。 - undefined

26

很可能,您的URL无效。

如果这是http/https URL,您可以通过将URL输入浏览器中快速检查。如果完全没有显示任何内容,那么您就知道该URL无效。

我假设您正在谈论一个远程存储库。URL应该看起来像这些:

https://github.com/user/repo2.git if you're using HTTPS
git@github.com:user/repo2.git if you're using SSH

6
浏览器上显示正常,但克隆后无法正常工作。 - Chandni

25

我也遇到了同样的问题。我试图克隆一个私有存储库,我的osx上安装的git具有钥匙串,它不允许我克隆该存储库...

我尝试了

git clone https://username:password@github.com/NAME/repo.git 

但它没有起作用,因为我的密码包含了“@”符号。

我刚刚运行了

git credential-osxkeychain erase
host=github.com
protocol=https

输入命令并按回车键,它完美地工作了。实际上,您需要删除已存储在OSX中的钥匙串。


19

解决了我的问题,因为我遇到了“重定向/登录网址”或“仓库未找到”错误

MacOS 用户:

  1. 打开 Spotlight(Command Space)
  2. 输入 keychain (打开密钥串访问.app)
  3. 搜索仓库域名(GitHub、GitLab 等)
  4. 删除与该域名相关的所有密钥
  5. 使用有效凭据再次尝试克隆

Windows 用户应尝试类似的步骤,但密钥串应为 Microsoft 的凭据管理器,具体取决于您的操作系统版本。如果是这种情况,请确保清除 Web 和 Windows 凭据。


这可能已经解决了我的问题,不完全确定,因为一开始似乎没有影响,但后来在没有进行其他更改的情况下,它又开始正常工作了。 - patrick.elmquist
如果您有两个或更多包含名称gitlab的密钥链,且无法一次性全部删除,则尝试逐个删除。(逐个删除并关闭密钥链部分,然后重复进行下一个) - Jitendra
在使用MacOS Big Sur操作系统时,删除Key Chain中的Github条目可以解决该问题。 - yaach

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