克隆私人Github回购

时间:2010-03-24 03:12:22

标签: git github private

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

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

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

24 个答案:

答案 0 :(得分:146)

私有克隆网址采用git@github.com:username/repo.git格式 - 您可能需要使用git@而不是git://吗?

git://网址是只读的,看起来私有存储库不允许这种形式的访问。

答案 1 :(得分:117)

这对我有用:

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

这当然是在adding my SSH key to Github之后。我在CentOs服务器上使用它,如果有必要的话。

答案 2 :(得分:39)

这对我有用:

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

答案 3 :(得分:30)

看在上帝的份上,我已经多次遇到这个问题了,每次我登陆此页面,尝试每件事都失败了!

这是因为我启用了2FA!

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

  

如果您启用了two-factor authentication,或者您正在访问使用SAML single sign-on的组织,则必须provide a personal access token,而不是输入HTTPS Git的密码。

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

更新:

  • 如果您不介意在命令行中公开访问令牌,也可以将访问令牌粘贴为用户名,然后按Enter键(不需要密码)。
  • 讨厌一遍又一遍地复制并粘贴访问令牌吗?
    使用git config credential.helper store(不要在您不信任的计算机上执行此操作)

答案 4 :(得分:17)

使用Git for Windows可以更轻松地使用HTTPS网址。

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

答案 5 :(得分:5)

为了回应mac的回答,您可以点击SSH上的You can clone with HTTPS, SSH, or Subversion.并点击网址,在github repo页面上获取您的SSH克隆网址。

答案 6 :(得分:5)

对我而言,解决方案是:

git clone https://myusername@restoftherepolink.git

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

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
  5. 当提示输入密码时,将该令牌放在此处。 Token generation image here

答案 7 :(得分:3)

我有一个公司(私人)帐户并启用了2因素身份验证,因此我不得不合并一些帖子才能使其正常工作,如下所示。 (记下来,这样对情况相同的人可能有用)

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/

这不能解决问题,因为当我尝试使用以下克隆命令时,问题移至以下位置:

$ 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 Credential Manager也会增加问题。一世   移至以下步骤之前,删除了以这种方式存储的github凭据。

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

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

答案 8 :(得分:3)

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

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

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

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

答案 9 :(得分:3)

除了MK Yung的回答:如果您不希望收到403 Forbidden,请确保为您在repo的部署密钥部署的任何地方添加公钥。响应。

答案 10 :(得分:2)

这对我来说很有用 git clone https://username@github.com:username/repo_name

答案 11 :(得分:2)

在启用2FA的情况下从私有存储库克隆时,您需要执行一些简单的步骤

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

当您收到私人存储库的身份验证失败错误消息时,请遵循相同的步骤

答案 12 :(得分:1)

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

  

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

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

答案 13 :(得分:1)

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

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

现在其他人提到的问题是,密码中包含特殊字符。 在Javascript中,使用以下代码将带有特殊字符的密码转换为UTF-8编码。

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

现在使用此生成的密码代替带有特殊字符和运行命令的密码。

希望这个解决问题。

答案 14 :(得分:1)

我正在使用Android Studio从GitHub私有存储库和两因素身份验证(2FA)克隆项目。我创建了personal token中的lzl124631x's answer

然后我使用如下网址克隆了仓库: https://您的GitHub用户名:YourGeneratedPersonalToken@github.com/YourRepoPath.git

答案 15 :(得分:0)

在github中添加桌面ssh公钥。

https://github.com/settings/keys

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

答案 16 :(得分:0)

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

受此问题启发: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

答案 17 :(得分:0)

如果您确定未启用2FA,则有权访问该存储库,并且该存储库已存在,则您的git@github.com可能是使用另一个帐户登录的。

检查您可以做什么

dest_country

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

ssh -T git@github.com

答案 18 :(得分:0)

如果您想在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} .

答案 19 :(得分:0)

git clone https://myusername:mygithubpassword@github.com/myusername/project.git

当您尝试从存储库中使用私有存储库时,您需要为此输入用户名和密码。

答案 20 :(得分:0)

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

如果存储库的维护者已授予开发人员访问其私有库上的访问权限的权限,则您需要先使用收到邀请的用户身份登录https://gitlab.com/users/sign_in,系统将提示您更改密码,然后再更改密码,然后您可以成功克隆存储库,将其推入并推送到其中。

答案 21 :(得分:0)

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

可以使用http.extraHeader git-config option配置基本身份验证标头:

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]占位符应替换为生成的真实令牌值(包括方括号)。您可以阅读有关访问令牌herehere的更多信息。

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

答案 22 :(得分:0)

每个人都知道克隆过程,因此我想在这里添加更多内容。 不用担心特殊字符或将“ @”写为“%40” see character encoding

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

此行可以完成工作

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

为解决此问题,我鼓励使用GitHub Developer选项生成Access令牌。 我相信Access令牌是安全的,您不会找到任何特殊字符。

creating-a-personal-access-token

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

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

我只是将我的原始密码替换为访问令牌, 现在,我不担心有人看到我的访问凭据,只要有感觉,我就可以重新生成令牌。

确保您已选中 repo完全控制私有存储库 here is the snap short

答案 23 :(得分:0)

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

这对我来说似乎不起作用。