使用不同的用户名/账户进行Git克隆

53

我如何使用与之前不同的帐户在git上克隆代码仓库?

例如,我可能曾经使用一个帐户来克隆某个仓库,现在我需要访问另一个仅有不同帐户才能访问的仓库。

谢谢帮助。

4个回答

76

如果你通过 https 克隆,你可以这样做

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

这将提示您输入密码。

您也可以通过调用方法直接提供密码。

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

请注意,密码将会保存在.git/config和您的bash历史记录中,这是不安全的。如果您不想每次都输入密码,应该考虑通过ssh进行克隆。


我有一个类似于这样的ssh:git clone ssh://[somelongcode]@[a]-[b].rhcloud.com/~/git/[a].git/我正在使用从openshift(我正在使用的Web托管服务)获取的ssh如果我不更改它,我会得到:请确保您拥有正确的访问权限并且存储库存在。 - David Callanan
在您使用ssh的示例中,[somelongcode]将是用户名。请尝试用正确的用户名替换它。您还可以尝试执行ssh [somelongcode]@[a]-[b].rhcloud.com来查看ssh是否正常工作。 - DirkH
那么您可能想尝试使用另一个密钥进行身份验证,我忘记了openshift的确切工作方式,但这可能是一个解决方案。 - MayeulC
这个还是在终端里不能工作。我可以通过 Github 桌面版看到它并进行克隆操作。但是即使输入了有效的用户名和密码,git clone 也无法工作 - 我得到了“身份验证失败”的错误提示。但是在桌面版中仓库显示是正确的。 - RichMeister
3
如果您启用了双因素身份验证,那么您的密码就是您的个人访问令牌。 - myself
Github于2021年8月13日停止支持密码身份验证。如果您想使用HTTPS进行克隆,请参见以下链接: https://dev59.com/2lkS5IYBdhLWcg3wl3yI#73722165 - Marcelo Xavier

24

我尝试了上面的解决方案,但似乎在2021年8月13日后对密码验证的支持被删除了。

解决方法是使用个人访问令牌,您可以在“设置 -> 开发者设置 -> 个人访问令牌”中生成。

然后:

git clone https://username:personal-access-token@github.com/username/repository.git

1
现在密码已从GitHub中删除,因此这应该是主要的接受答案。 - baskcat

1
Github于2021年8月13日取消了密码验证,如果您想使用HTTPS进行克隆,请按照以下说明操作。
当您在命令行上使用HTTPS URL进行git clone、git fetch、git pull或git push到远程存储库时,Git会要求您输入GitHub用户名和密码。当Git提示您输入密码时,请输入个人访问令牌(PAT)。基于密码的Git身份验证已被更安全的身份验证方法所取代。有关更多信息,请参见“创建个人访问令牌”。
另外,您可以使用类似Git凭据管理器这样的凭据助手。
参考:Github页面使用HTTPS进行克隆

-1
如果此帐户的 ssh-key 已添加到您的设备中,则可以在 ssh-add 之后尝试此操作。
git clone git@<account_username>:<repo_username>/repository.git

希望这能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接