作为第二个用户有三个方面.
1. GitHub帐户
要将GitHub Web界面用作其他用户(例如,分叉存储库,提交拉取请求,发表评论),您需要登录其他帐户.*
提示:在帐户之间切换很麻烦,因为您每次都必须注销并登录.您可以使用私人浏览窗口,其他浏览器或其他浏览器配置文件同时登录两个帐户.
2. SSH身份验证
可以通过HTTPS或SSH访问GitHub存储库.两者都需要身份验证,GitHub使用它来实现permission levels.我将描述如何使用配置为以第二个用户身份验证的SSH克隆存储库.
Generate a new SSH key使用ssh-keygen -f KEYFILE,其中KEYFILE是新密钥的路径(例如〜/ .ssh / bob_rsa).
Add the SSH key到第二个用户的GitHub帐户.
SSH需要配置为使用〜/ .ssh / bob_rsa,但仅当您尝试将存储库克隆为第二个用户时.这样,您仍然可以使用添加到普通GitHub帐户的SSH密钥将存储库克隆为普通用户.可以根据主机名指定不同的配置,但对于GitHub存储库,主机名始终为github.com.要仅为某些克隆的存储库指定配置,请通过将以下内容附加到〜/ .ssh / config(credit)来添加主机别名:
# alias for github.com with a custom SSH key
Host bob.github.com
HostName github.com
IdentityFile ~/.ssh/bob_rsa
我使用了主机名bob.github.com,但它可以是任何字符串.
现在,您可以使用主机名bob.github.com(或您在SSH配置中使用的任何主机名)将GitHub存储库克隆为第二个用户:
git clone git@bob.github.com:USER/PROJECT.git
如果以这种方式克隆第一个用户拥有的存储库,则在add your second user as a collaborator之前,您应该无法将提交推送到该存储库.
测试SSH配置
如果遇到问题,请通过运行检查SSH是否正常工作
ssh git@bob.github.com
(将bob.github.com替换为主机XXX行中的主机名).
第一次通过SSH连接到GitHub时,您应该收到类似的消息
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
键入yes,然后按Enter. (为了注意安全,请首先检查指纹是否在GitHub’s SSH Keys page中列出).
如果您的配置正确并且通过粘贴“SSH和GPG密钥”页面中〜/ .ssh / bob_rsa.pub的内容将SSH密钥添加到第二个GitHub帐户,您应该看到
PTY allocation request failed on channel 0
Hi USER! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
USER应该是第二个帐户的名称.
如果您还为普通帐户设置了SSH访问权限,则应该可以运行
ssh git@github.com
并获取相同的消息,但USER是您的普通帐户的名称.
3. Git作者元数据
Git会在每次提交时存储作者的姓名和电子邮件地址.例如,GitHub使用此信息在提交历史中显示用户头像.欺骗这些信息是微不足道的(1,2).
作者的姓名和电子邮件地址通常存储在全局配置文件(〜/ .gitconfig)中.您可以通过在存储库的目录中运行以下命令,在每个存储库的基础上覆盖它们:
git config --local user.name "NAME"
git config --local user.email "EMAIL"
将NAME和EMAIL替换为第二个用户的全名和电子邮件地址. –local标志修改每个存储库配置文件(存储库根目录中的.git / config),而不是修改〜/ .gitconfig的–global标志.默认值是–local,所以实际上它可以省略.
现在你有一个克隆,你实际上是第二个用户.使用另一个(普通)克隆作为第一个用户.
*精美打印:GitHub的Terms of Service仅允许每人一个免费帐户.