我在Github上有一个私人存储库,用于我正在进行的一个项目。到目前为止,我只在家里的台式机上工作,但我刚刚买了一台笔记本电脑,我正在尝试设置它,以便我可以在任何一台电脑上工作,并进行推/拉更改。
我在我的Github账户上为笔记本电脑添加了一个新的SSH密钥,并且成功地克隆并更改了我设置的公共测试回购。但是,我不能克隆私人回购。为了克隆私有回购,我需要在命令行中做什么特别的事情吗?我是否需要为我的笔记本电脑设置一个新的GitHub帐户,并将自己设置为合作者?
我使用的命令是git clone git://github.com/username/reponame.git
我认为值得一提的是,如果由于某些原因不能使用SSH协议,并且修改私有存储库http(s) URL以提供基本的身份验证凭据也不是一个选项,那么还有一个替代方案。
基本身份验证头可以使用http配置。extraHeader git-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头将包含在git命令访问的github.com IP地址的每个HTTPS请求中。
我遇到过这个问题几次,每次我登陆这个页面,尝试了所有的东西,都失败了!
这是因为我启用了2FA !!
根据https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled
如果启用了双重身份验证,或者正在访问使用SAML单点登录的组织,则必须为HTTPS Git提供个人访问令牌,而不是输入密码。
按照此链接创建一个访问令牌
git克隆https://github.com/username/repo_name.git(默认的git回购链接已经足够好了!)
输入您的用户名,并使用访问令牌作为密码!!
更新:
如果您不介意在命令行中暴露您的访问令牌,您还可以将访问令牌粘贴为用户名,然后单击回车(不需要密码)。
讨厌复制和粘贴访问令牌一遍又一遍?
使用git配置凭证。辅助存储(不要在你不信任的机器上这样做)
正如每个人都知道克隆的过程,我想在这里补充一些东西。
不要担心特殊字符或将“@”写成“%40”,参见字符编码
$ git clone https://username:password@github.com/user/repo
这条线就可以了
假设我有一个包含特殊字符的密码(我不知道在我的密码中替换什么'@')
如果我想使用我原来的密码以外的其他临时密码怎么办
为了解决这个问题,我鼓励使用GitHub开发者选项来生成访问令牌。
我相信访问令牌是安全的,你不会发现任何特殊字符。
creating-a-personal-access-token
现在我将编写下面的代码来访问我的存储库。
$ git clone https://username:token@github.com/user/repo
我只是用Access-token替换了我原来的密码,
现在我不担心有人看到我的访问凭证,我可以在任何时候重新生成令牌。
确保您已勾选“私有存储库的完全控制”