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

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

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


当前回答

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

其他回答

当从启用2FA的私有回购中克隆时,您需要遵循简单的步骤

转到你的Git帐户 进入设置->开发人员设置->个人访问令牌 单击Generate new token 创建一个带有您想要的标题和功能的令牌 当您克隆私有回购时,通过使用git clone repoName,在输入您的用户名后,提供个人访问令牌作为密码。

当您获得私有回购的身份验证失败错误消息时,请执行相同的步骤

如果您确定您没有启用2FA,您有权限访问回购,并且回购存在,那么您的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

我遇到过这个问题几次,每次我登陆这个页面,尝试了所有的东西,都失败了!

这是因为我启用了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配置凭证。辅助存储(不要在你不信任的机器上这样做)

私有克隆url的形式为git@github.com:username/repo.git -也许你需要使用git@而不是git://?

url是只读的,看起来私有回购不允许这种形式的访问。

这招对我很管用:

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