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

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

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


当前回答

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

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

其他回答

对我来说,解决方案是:

git clone https://myusername@restoftherepolink.git

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

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

如果你启用了2FA,那么:

从右上角的个人资料图标进入设置或访问https://github.com/settings/profile 转到底部选项卡或转到https://github.com/settings/tokens 打开最后一个标签这里个人令牌。并生成一个令牌 复制令牌并运行git clone https://myusername@restoftherepolink.git

当提示输入密码时,把标记放在这里。

2023年更好的解决方案

使用个人访问令牌可以工作,但是您可能更喜欢将令牌访问范围缩小到您想要克隆的存储库

Github引入了细粒度的个人访问令牌,它可以做到这一点。

以下是需要遵循的步骤:

在右上角菜单中选择“设置”

在接下来的页面中,从左侧选择“开发人员设置”

然后在下一页的“个人访问令牌”下选择“细粒度令牌”

然后点击“生成新令牌”按钮

在下一页中,您将被要求为您的令牌提供一个名称,您也可以选择Repository访问。如果您只想指定一个存储库,那么请选择“仅选择存储库”,然后从下拉菜单中选择您的存储库

之后,在同一页面中,您需要指定Repository权限。如果你只是想克隆一个私有回购,将“contents”设置为“Access: read-only”

最后点击“生成令牌”按钮

获得令牌后,复制它并运行命令

git clone https://oauth2:<YOUR-TOKEN-HERE>@github.com/<your_user>/<your_repo>.git

就是这样。

在github中添加桌面ssh公钥。

https://github.com/settings/keys

您可以克隆的回购没有任何密码。

解决方案:2022年2月

进入>开发者设置>个人访问令牌链接:https://github.com/settings/tokens 单击生成新令牌 选择作用域(启用全部以完全访问)

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

现在使用以下命令:

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


更新2021年(过时)

正在执行以下命令:

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

将在以下错误中解决:

密码认证支持已于2021年8月13日移除。请改用个人访问令牌。

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

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



方案2021(过时)

点击你的图标配置文件,然后转到(使用上面的链接获取更多指导):

设置>开发人员设置>个人访问令牌>生成新的令牌

正如每个人都知道克隆的过程,我想在这里补充一些东西。 不要担心特殊字符或将“@”写成“%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替换了我原来的密码, 现在我不担心有人看到我的访问凭证,我可以在任何时候重新生成令牌。

确保您已勾选“私有存储库的完全控制”