git 克隆时出现 https 错误 - 严重:未找到存储库

git clone with https error - fatal: repository not found

我 fork 了一个 private 存储库,我被邀请参与协作,但每次我尝试 clone with HTTPS,我得到以下错误消息:

$ git clone https://github.com/usernamex/privat-repo.git
cloning into 'privat-repo'...
Username for 'https://github.com':usernamex
Password for 'https://usernamex@github.com':
remote: Repository not found.
fatal: repository 'https://github.com/usernamex/privat-repo.git/' not found

Note: 'usernamex' and 'privat-repo' are just examples


以下是我尝试过但没有成功的一些方法:

我通过终端在 mac 上 运行 git 2.10,正如我提到的,我对 HTTPS 的解决方法不感兴趣(例如:SSH 或 GitHub 桌面)。

知道为什么会这样吗?

This Github document 读作:

The https:// clone URLs are available on all repositories, public and private.

但是由于您正在尝试访问私有存储库,因此需要进行身份验证。一种方法是将用户名和密码附加到地址,如下所示:

git clone https://username:password@github.com/usernamex/privat-repo.git

但是 same page 显示:

If you have enabled two-factor authentication, or if you are accessing an organization that uses SAML single sign-on (SSO), you must authenticate with a personal access token instead of your username and password for GitHub.

如果您启用了 2FA,请检查 this page 以了解生成个人访问令牌的步骤。请记住,您应该检查个人令牌的完整 repo 范围(如下所示)。

如果您尝试从您获得授权的帐户以外的帐户克隆存储库(如果它是其他人的存储库)并且它来自 https url,请更改 https:// 在你的克隆命令部分到 http://。 Bash 会自动将请求改回 https,就像魔术一样,repo 将成功克隆。我在 windows 上遇到了这个问题(通过 git Windows 安装附带的 mingw64 git bash terminal/cli。) 我尝试通过 https url 克隆并不断收到此响应:

$ fatal: repository 'https://github.com/random-user/random-repo.git/' not found

我尝试了以上所有建议,但没有任何效果。最后,我尝试从 url 中删除 's',并得到以下响应:

$ git clone http://github.com/random-user/random-repo.git Cloning into 'RomanianCoderExamples'... warning: redirecting to https://github.com/random-user/random-repo.git/ remote: Enumerating objects: 175, done.

顺便说一句,上面的链接是自动添加的,几乎肯定不起作用。如果他们这样做,有人 真的 需要重新考虑他们的命名方案

如果给定的 URL 是正确的,也应该调查一下,它可能与一些已经保存在系统中的 git 凭据有关:

Git - remote: Repository not found

虽然这可能不适用于您的特定实例 - 这可能会帮助另一个 运行 遇到同样问题的人。

仔细检查您当前在终端中的位置。如果您在尝试克隆操作之前一直在设置和删除文件,您可能不小心将当前位置目录移到了垃圾箱。终端不会立即显示此信息,但是如果您在文件层次结构中向上跳一级(通过 'cd ..' 命令),那么您可能会看到您突然位于“.Trash”

这种情况下的解决方案是导航回干净的工作文件夹并重试 git 克隆命令。

使用 https,您需要创建一个个人访问令牌 (PAT) 并每次都使用此令牌作为您的密码。不要将您的 Github 密码用于 2FA。

但是,由于这样做不合逻辑,最简单的方法是使用 ssh 而不是 https

根据 Github 文档生成您的 ssh 令牌并将其添加到您的帐户 https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent 然后,在本地克隆 repo,

git clone git@github.com:USERNAME/REPO.git

请确保同时更新您的 .git/config 文件以匹配此 ssh url

[remote "origin"]
        url = git@github.com:USERNAME/REPO.git
        fetch = +refs/heads/*:refs/remotes/origin/*
以上的

None 对我有用。所做的是我创建了一个个人访问令牌。当系统提示我输入我粘贴到令牌中的用户名和密码时,我粘贴了令牌,然后它只克隆了存储库,瞧!

remote: Enumerating objects: 10642, done.
remote: Total 10642 (delta 0), reused 0 (delta 0), pack-reused 10642
Receiving objects: 100% (10642/10642), 510.06 MiB | 993.00 KiB/s, done.
Resolving deltas: 100% (7509/7509), done.
Updating files: 100% (2324/2324), done

在此之前,我收到了这条错误消息:

remote: Repository not found.
fatal: repository 'https://github.com/workrepo/repository_I_needed.git/' not found

我今天也遇到了 github 凭据的一些问题,因为 user/pass 身份验证似乎已被弃用:

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

我最后添加了一个 new SSH key for github authentication。并且,重要说明


不要使用 HTTPS 克隆:

git clone https://github.com/USERNAME/REPO.git

改为使用 SSH 克隆:

git clone git@github.com:USERNAME/REPO.git

.git/config

中不要使用 HTTPS 作为你的上游
[remote "origin"]
    url = https://github.com/USERNAME/REPO.git

.git/config

中使用 SSH 作为上游
[remote "origin"]
    url = git@github.com:USERNAME/REPO.git

确保您在生成个人访问令牌时选择了正确的范围,这节省了我的时间!