在一台计算机上的一个Git中切换用户身份

我在GitHub上一个仓库,我们称之为Repo-1

我想首先访问该存储库作为默认的Git用户

我们称这个用户为User-1

我创build了SSH密钥对 ,一切正常, 工作很好


我在GitHub上创build另一个仓库,我们称之为Repo-2

我在笔记本电脑上没有对本地Git进行任何更改 。 没有configuration变化,什么都没有。

现在 – 我想从Repo-1 克隆 User-2 (但来自同一台笔记本电脑 )。

首先:这是可以做的吗?

一台笔记本电脑上的本地Git可以在“用户帐户”之间切换,并将其本身显示为User-2 ? 然后,从这个身份,从回购1克隆,做一些改变,然后推到Repo-1

如果可能的话,我该怎么做?

你有你的全局.gitconfig你已经configuration你的SSH密钥/用户信息。 全局.gitconfig被本地gitconfig覆盖 – 在.git文件夹中的文件“config”(如果它不存在,你可能需要创build它)。

例如,您可以将.gitconfig文件复制到.git文件夹中(并将其重命名为“config”),只需更改要更改的行(可能是github.user和github.token),或者只用新创build的文件它的两条线。

如果你喜欢命令行“git config”,你可以通过省略“–global”选项来避免所有的文件移动。

你需要确定你是否真的有两个SSH密钥对,或者只是两个你想使用的邮件。 一个ssh密钥对与这里描述的账户链接。

SSH密钥对(特别是私钥),基本上给你的git客户端连接到github的权限,从而允许推送。 这与用户标识是分开的,这就是您提交消息中的电子邮件。

如果您有两个ssh密钥对,每个都链接到一个帐户,请按照以下说明创build~/.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]设置。