我在 GitHub 上有 ONE 存储库,我们称之为Repo-1
。
我想首先以默认Git用户访问该存储库。
我们称该用户为User-1
。
我创建了 SSH密钥对,一切正常,效果很好。
我在 GitHub 上创建了另一个存储库,我们称之为Repo-2
。
我在我的笔记本电脑上没有对本地Git进行任何更改。没有配置更改,没有。
现在 - 我希望Repo-1
中的{strong>克隆作为User-2
(但来自同一台笔记本电脑)。
首先:这有可能吗?
单个笔记本电脑上的本地Git可以在“用户帐户”之间切换并显示为User-2
吗?然后,根据这个身份,从Repo-1克隆,进行一些更改,然后推送到Repo-1
?
如果可能,我该怎么做?
答案 0 :(得分:72)
您已经在全局.gitconfig中配置了SSH密钥/用户信息。全局.gitconfig被本地gitconfig覆盖 - 文件" config"在.git文件夹中(如果它不存在,则可能必须创建它)。
例如,您可以将.gitconfig文件复制到.git文件夹中(并将其重命名为" config")并只更改要更改的行(可能是github.user和github.token)或者你创建一个只包含两行的新文件。
如果您更喜欢命令行" git config"你可以通过省略" - global"来避免所有文件移动的东西。选项。
答案 1 :(得分:51)
您需要确定您是否确实有两个ssh密钥对,或者只是要使用两封电子邮件。 ssh密钥对与here所述的帐户相关联。
ssh keypair(特别是私钥),基本上赋予你的git客户端连接到github的权限,从而允许推送。这与用户身份是分开的,用户身份只是提交消息中的电子邮件。
如果您有两个ssh密钥对,每个密钥对都链接到一个帐户,请按照these说明创建~/.ssh/config
文件。关键部分是为每个帐户使用不同的ssh psuedo-host:
# Default GitHub user (joe)
Host github.com
HostName github.com
User git
IdentityFile /Users/joe/.ssh/id_rsa
# Client user (client)
Host github-client
HostName github.com
User git
IdentityFile /Users/joe/.ssh/id_rsa_client
然后使用两个相应的遥控器:
git clone git@github.com:joe/my_repo.git
和
git clone git@github-client:client/his_repo.git
如果您只想使用两封电子邮件,则可以使用所需的.git/config
设置为每个克隆提供单独的[user]
。