315

我在 Github 上有一个私人存储库,用于我正在从事的项目。到目前为止,我只在家用台式机上工作,但我刚买了一台笔记本电脑,并正在尝试对其进行设置,以便我可以从任何一台计算机上处​​理项目,并推送/拉取更改。

我在笔记本电脑的 Github 帐户中添加了一个新的 SSH 密钥,并成功克隆并更改了我设置的公共测试存储库。但是,我无法克隆私人仓库。为了克隆私人仓库,我需要在命令行中做些什么特别的事情吗?我是否需要为我的笔记本电脑设置一个新的 GitHub 帐户并将自己设置为协作者?

我使用的命令是git clone git://github.com/username/reponame.git

4

28 回答 28

238

这对我有用:

git clone https://username@github.com/username/repo_name

于 2015-01-04T05:37:48.537 回答
214

私有克隆 URL 采用这种形式git@github.com:username/repo.git- 也许您需要使用git@而不是git://?

git://URL 是只读的,看起来私人仓库不允许这种形式的访问。

于 2010-03-29T13:05:40.873 回答
143

我已经多次遇到这个问题,每次我登陆这个页面时,都尝试了一切,但都失败了!

这是因为我启用了 2FA!

根据https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled

如果您启用 了双重身份验证,或者您正在访问使用 SAML 单点登录的组织,则必须 提供个人访问令牌 ,而不是输入您的 HTTPS Git 密码。

  1. 点击此链接并创建访问令牌
  2. git clone https://github.com/username/repo_name.git(默认的 git repo 链接就足够了!)
  3. 输入您的用户名并使用访问令牌作为密码!!

更新:

  • 如果您不介意在命令行中公开您的访问令牌,您也可以将访问令牌粘贴为用户名,然后按回车键(无需密码)。
  • 讨厌一遍又一遍地复制和粘贴访问令牌?
    使用git config credential.helper store(不要在你不信任的机器上这样做)
于 2018-08-24T20:41:45.497 回答
99

这对我有用:

git clone https://username:password@github.com/username/repo_name.git
于 2017-10-01T07:13:00.393 回答
32

对我来说,解决方案是:

git clone https://myusername@restoftherepolink.git

在这里,您需要成为 repo 的所有者,但如果您不是,那么它将成为

git clone https://myusername@github.com/ownersusername/repo_name.git

如果你有2FA enabled那么:

  1. 从右上角的配置文件图标转到设置或访问https://github.com/settings/profile
  2. 转到底部选项卡或转到https://github.com/settings/tokens
  3. 在此处打开最后一个选项卡 个人令牌。并生成一个令牌
  4. 复制令牌并运行git clone https://myusername@restoftherepolink.git

当提示输入密码时,将该令牌放入此处。 令牌生成图像在这里

于 2018-05-16T05:27:16.100 回答
29

2022 年 2 月更新:

您需要在“https://”之后和“github.com/”之前添加“username:pat@”,如下所示:

* patPAT(个人访问令牌)

git clone https://username:pat@github.com/username/reponame.git

要克隆私有存储库,您需要在Github上生成 PAT(个人访问令牌)并将其添加到命令中。

这是您在 Github 上生成 PAT(个人访问令牌)的方式:

1、进入“设置”

在此处输入图像描述

2,向下滚动然后转到“开发人员设置”

在此处输入图像描述

3,“个人访问令牌”,然后按“生成新令牌”

在此处输入图像描述

4、填写“Note”然后勾选“repo”

*如果未勾选“repo”,则无法克隆私有仓库。

在此处输入图像描述

5,向下滚动然后按“生成令牌”

在此处输入图像描述

6、最后生成一个PAT

在此处输入图像描述

这是上面生成的带有 PAT的命令:

git clone https://username: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@github.com/username/reponame.git
于 2021-12-12T02:41:06.847 回答
22

使用 Git for Windows 更容易使用 HTTPS url。

然后打开一个 git shell git clone https://github.com/user/repo。出现提示时输入用户名和密码。无需设置 SSH 密钥。

于 2014-03-10T13:21:38.583 回答
15

正如每个人都知道克隆的过程,我想在这里添加一些东西。不用担心特殊字符或将“@”写为“%40”参见字符编码

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

这条线可以完成这项工作

  1. 假设我有一个包含特殊字符的密码(我不知道在我的密码中用什么替换'@')
  2. 如果我想使用原始密码以外的其他临时密码怎么办

为了解决这个问题,我鼓励使用 GitHub 开发者选项来生成访问令牌。我相信访问令牌是安全的,您不会找到任何特殊字符。

创建个人访问令牌

现在我将编写以下代码来访问我的存储库。

$ git clone https://username:token@github.com/user/repo

我只是用 Access-token 替换我的原始密码,现在我不担心有人看到我的访问凭证,我可以随时重新生成令牌。

确保您已检查repo 完全控制私有存储库 这是短片

于 2020-11-04T18:05:08.657 回答
10

我有一个公司(私人)帐户并启用了 2-Factor-Authentication,所以我必须合并一些帖子才能使其工作如下。(记下来,因此可能对有相同情况的人有用)

Initially it was the Fatal Error. 
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:

安装了凭证管理器并更新了 GIT,如下所述:https ://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/

这并没有解决问题,因为当我尝试使用 clone 命令时,问题转移到了下面,如下所示:

$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

remote: Invalid username or password.
fatal: Authentication failed for 'https://

我的密码中有 $ 符号,出于某种原因 GIT 命令行 / GIT Bash 不喜欢它。我可以在返回的错误文本中看到这一点,其中没有 $ 符号。

fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'

我不得不参考这个网站:https ://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

请注意:如果在Windows 凭据管理器中为您的帐户存储了不正确的密码, 它也会增加问题。在转到以下步骤之前,我删除了以这种方式存储的 github 凭据。

$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

现在弹出了 Windows 凭据管理器。我在文本框中输入了我的用户名和密码(这接受了我的带有 $ 符号的密码)并提示我输入 2 因素身份验证代码。我输入了 Google Authenticator 的验证码,克隆完美启动。

于 2018-10-08T21:20:50.667 回答
10

我需要一种非交互式方法来克隆私人仓库。

受此问题启发:https ://github.com/github/hub/issues/1644

第1步。

在 github 开发者设置中创建个人访问令牌: https ://github.com/settings/tokens

第2步。

git clone https://$token:x-oauth-basic@github.com/$username/$repo.git
于 2019-05-29T14:07:40.980 回答
10

2021 年 8 月 13 日更新

这里

2020 年 7 月,我们宣布我们打算要求对所有经过身份验证的 Git 操作使用基于令牌的身份验证(例如,个人访问、OAuth 或 GitHub 应用程序安装令牌)。从 2021 年 8 月 13 日开始,在 GitHub.com 上对 Git 操作进行身份验证时,我们将不再接受帐户密码。

你今天需要做什么

  • 对于开发人员,如果您现在使用密码对 GitHub.com 的 Git 操作进行身份验证,则必须在 2021 年 8 月 13 日之前通过 HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌,以避免中断。如果您收到警告说您正在使用过时的第三方集成,您应该将您的客户端更新到最新版本。

  • 对于集成商,您必须在 2021 年 8 月 13 日之前使用 Web 或设备授权流程对集成进行身份验证,以避免中断。有关更多信息,请参阅授权 OAuth 应用程序开发者博客上的公告


在命令行上使用令牌

1) 创建个人访问令牌 - 按照操作。

2 ) 一旦你有了一个令牌,你可以在通过 HTTPS 执行 Git 操作时输入它而不是你的密码。

例如,在命令行中,您将输入以下内容:

$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token # <----- Bingo!

(*) 在此处查看更多信息。

于 2021-08-25T20:57:33.107 回答
8

从启用 2FA 的私人仓库克隆时,您需要遵循一个简单的步骤

  1. 转到您的 Git 帐户
  2. 转到设置-> 开发人员设置-> 个人访问令牌
  3. 单击生成新令牌
  4. 创建具有您想要的标题和功能的令牌
  5. 当您克隆私有仓库时,使用 git clone repoName,输入您的用户名后,将个人访问令牌作为密码。

当您收到私有仓库的身份验证失败错误消息时,请按照相同的步骤操作

于 2019-09-16T15:18:24.777 回答
6

SSH作为对 mac 的回答,您可以通过单击并复制URL,在您的 github 存储库页面上获取您的 SSH 克隆You can clone with HTTPS, SSH, or Subversion.URL。

于 2013-10-07T01:37:33.240 回答
6

解决方案:2022 年 2 月

  1. 转到以下链接:https ://github.com/settings/tokens
  2. 点击generate new token
  3. 选择范围(全部启用以获得完全访问权限)

这将生成一个看起来像这样的令牌:

在此处输入图像描述

现在使用以下命令:

git clone https://user:TOKEN@github.com/username/repo.git

2021 年更新(已过时)

过时:尝试以下命令:

git clone https://user:pass@github.com:username/repo.git

将解决以下错误:

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

并将您链接到以下支持页面:

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token



解决方案 2021(过时)

单击您的图标配置文件并转到(使用上面的链接获取更多指导):

settings> developer settings> personal acces token > generate new token



于 2021-11-29T08:54:12.177 回答
4

这在mac上对我有用 git clone https://username@github.com:username/repo_name

于 2018-05-18T07:13:20.620 回答
3

除了 MK Yung 的回答:如果您不想收到 403 Forbidden 响应,请确保将要部署的任何位置的公钥添加到 repo 的部署密钥中。

于 2014-09-28T13:33:45.820 回答
3

首先确保您有一个 SSH 密钥或在以下位置生成一个: https ://help.github.com/articles/generating-ssh-keys/

获得密钥后,您必须将其添加到您的 github 帐户: https ://github.com/settings/ssh

对于 Windows 用户,以管理员身份运行 git bash 很有用。

现在克隆应该适用于私有存储库(repo),而无需输入您的用户名和密码。

于 2015-06-11T20:48:58.873 回答
2

如果您确定您没有启用 2FA,您有权访问 repo,并且 repo 存在,那么您的 git@github.com 可能使用其他帐户登录。

检查你能做到

ssh -T git@github.com

如果它显示另一个帐户,要解决此问题:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git
于 2019-10-05T22:22:56.567 回答
1

在 github 中添加您的桌面 ssh 公钥。

https://github.com/settings/keys

您可以在没有任何密码的情况下克隆 repo。

于 2018-02-09T07:24:44.220 回答
1

如果新使用的计算机具有运行此命令的不同凭据

git clone https://github.com/username/reponame.git

直接不行。Git 将尝试使用存储的凭据,并且不会提示您输入用户名和密码。由于凭证不匹配,git 将输出Repository not found并且克隆操作失败。我解决它的方法是删除旧凭据,因为我不再使用它们,然后再次运行上述命令并输入所需的用户名和密码并克隆私人仓库。

于 2018-09-24T09:55:17.423 回答
1

如果您想在 中实现它Dockerfile,下面的行会有所帮助。

ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project

然后我们可以使用以下参数进行构建。

docker build --build-arg git_personal_token={your_token} .
于 2019-12-24T10:55:51.667 回答
1

1)尝试使用以下格式的用户名和密码运行命令

git clone https://your_username:your_password@github.com/username/reponame.git

现在其他人在这里提到的问题是当我们的密码中有特殊字符时。在 Javascript 中使用下面的代码将带有特殊字符的密码转换为 UTF-8 编码。

console.log(encodeURIComponent('password@$123'));

现在使用这个生成的密码而不是带有特殊字符的密码并运行命令。

希望这能解决问题。

于 2020-01-08T12:38:28.273 回答
1
git clone https://myusername:mygithubpassword@github.com/myusername/project.git

当您尝试使用来自回购的私人回购时,您需要为此传递用户名和密码。

于 2020-01-30T06:13:17.200 回答
1

在 2022 年使用 HTTPS 克隆私有存储库

如果存储库的维护者在他的私有库上授予开发人员访问您的权限,您需要首先使用您收到邀请的用户登录https://gitlab.com/users/sign_in,您将提示您更改密码,一旦您更改密码,您就可以成功克隆存储库,拉取和推送更改。

于 2020-08-23T19:19:32.470 回答
1

我正在使用 Android Studio 从 GitHub 私有存储库和双因素身份验证 (2FA) 克隆项目。我按照lzl124631x 的回答创建了一个个人令牌

然后我使用这样的 url 克隆了 repo:https://YourGitHubUsername:YourGeneratedPersonalToken@github.com/YourRepoPath.git

于 2020-09-10T17:53:26.783 回答
1

我认为还值得一提的是,如果由于某种原因无法使用 SSH 协议并且修改私有存储库 http(s) URL 以提供基本身份验证凭据也不是一个选项,那么还有一个替代方案。

可以使用http.extraHeadergit-config 选项配置基本身份验证标头:

git config --global --unset-all "http.https://github.com/.extraheader"
git config --global --add "http.https://github.com/.extraheader" \
          "AUTHORIZATION: Basic $(base64 <<< [access-token-string]:x-oauth-basic)"

应将[access-token-string]占位符(包括方括号)替换为生成的真实令牌值。您可以在此处此处阅读有关访问令牌的更多信息。

如果配置已正确应用,则配置的AUTHORIZATION标头将包含在对命令github.com访问的 IP 地址的每个 HTTPS 请求中。git

于 2020-10-29T09:06:58.333 回答
1

如果您启用了双因素身份验证,请确保创建的访问令牌而不是重新生成旧的访问令牌。

在我的情况下,这似乎不起作用。

于 2020-12-26T05:56:10.677 回答
0

我可以创建一个 SSH 密钥并使用它来克隆存储库。该命令将仍然相同:

git clone git@github.com:DriveWealth/my-repo-name.git
于 2021-12-20T04:46:02.103 回答