如何使用与我之前使用的帐户不同的帐户来
clone
git
上的存储库?
例如,我可能一直使用一个帐户来克隆一个存储库,现在我需要访问另一个只有不同帐户才能访问的存储库。
感谢您的帮助
如果您通过 https 克隆,您可以执行类似的操作
git clone https://[email protected]/username/repository.git
这将提示您输入密码。
您也可以直接拨打电话提供密码
git clone https://username:[email protected]/username/repository.git
但请注意,在这种情况下,密码将保存在 .git/config 和您的 bash 历史记录中,这是不安全的。 如果您不喜欢每次都输入密码,您应该考虑通过 ssh 克隆。
我尝试了上述解决方案,但似乎对密码身份验证的支持已于 2021 年 8 月 13 日删除。
解决方案是使用您可以在
Settings -> Developer Settings -> Personal access tokens
中生成的个人访问令牌。
之后:
git clone https://username:[email protected]/username/repository.git
Github 于 2021 年 8 月 13 日删除了对密码身份验证的支持。如果您想使用 HTTPS 克隆,请按照以下说明操作。
当您在命令行上使用 HTTPS URL git clone、git fetch、git pull 或 git push 到远程存储库时,Git 会询问您的 GitHub 用户名和密码。当 Git 提示您输入密码时,请输入您的个人访问令牌 (PAT)。 Git 的基于密码的身份验证已被删除,取而代之的是更安全的身份验证方法。有关更多信息,请参阅“创建个人访问令牌。” 或者,您可以使用凭证助手,例如 Git Credential Manager。
参考:Github 页面 使用 HTTPS 克隆
如果您有多个具有相同版本控制系统的帐户,您可以将 ssh 配置文件设置为使用不同的身份文件,如下所示:
例如:您已在 .ssh 文件夹中创建了两个身份(Windows:C:\Users\{yourUserName}\.ssh,Linux/MAC:~/.ssh),名称如下,
您可以更新 .ssh 文件夹中的配置文件,如下所示,
# Global options
Host *
# Always only use specified identities, do not fall back to
# everything found in ssh-agent.
IdentitiesOnly yes
# Repeat following for each context
## When in "personal" context directory, use "personal" ssh key for bitbucket.org or github.com
Host personal
HostName bitbucket.org
IdentityFile ~/.ssh/personal
## When in "work" context directory, use "work" ssh key for bitbucket.org or github.com
### Of course, other hosts that require this context
### can be added as well, just using the host name
Host bitbucket.org
IdentityFile ~/.ssh/work
一旦您从个人版本控制系统(bitbucket或github或其他任何东西)克隆任何项目,
✓
git clone git@personal:mypersonalworkspace/myproject.git
而不是
✕
git clone [email protected]:mypersonalworkspace/myproject.git
✓
git clone [email protected]:myofficeworkspace/myproject.git
如果您的设备已添加该账户的 ssh-key,您可以在 ssh-add 之后尝试此操作。
git clone git@<account_username>:<repo_username>/repository.git
希望这能有所帮助。