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

Mar*_*tin 79 git github

我在GitHub上一个存储库,让我们称之为.Repo-1

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

我们打电话给那个用户User-1.

我创建了SSH密钥对,一切都很好,效果很好.


我在GitHub上创建另一个存储库,让我们称之为.Repo-2

没有在我的笔记本电脑上对本地Git进行任何更改.没有配置更改,没有.

现在-我要克隆Repo-1User-2(但在同一台笔记本电脑).

首先:这有可能吗?

一台笔记本电脑上的本地Git可以在"用户帐户"之间切换并呈现为自己User-2吗?然后,从这个身份,从Repo-1克隆,做出一些改变,然后推送到Repo-1

如果可能,我该怎么做?

Moe*_*Moe 75

您已经在全局.gitconfig中配置了SSH密钥/用户信息.全局.gitconfig被本地gitconfig覆盖 - .git文件夹中的文件"config"(如果它不存在,则可能必须创建它).

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

如果您更喜欢命令行"git config",则可以通过省略"--global"选项来避免所有文件移动.

  • 好的谢谢.我刚试过它.两个文件夹(相同级别,一个接一个,folder1和folder2).在folder1中,配置文件中的默认设置.在folder2中更改了设置,包括GitHub用户名.在folder1中启动了GitBash,clone -...- push,GitHub看到了defalut用户的提交.在folder2中启动GitBash,clone -...- push,GitHub看到来自OTHER用户的提交.像魅力一样工作,无需改变全局设置.不同的文件夹,不同的用户 正是我需要的.很酷,再次! (3认同)

Mat*_*hen 52

您需要确定实际上是否有两个ssh密钥对,或者只是要使用两封电子邮件.描述一个SSH密钥对关联的帐户在这里.

ssh密钥对(特别是私钥),基本上赋予你的git客户端连接到github的权限,从而允许推送.这与用户身份是分开的,用户身份只是提交消息中的电子邮件.

如果您有两个ssh密钥对,每个密钥对都链接到一个帐户,请按照这些说明创建~/.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
Run Code Online (Sandbox Code Playgroud)

然后使用两个相应的遥控器:

git clone git@github.com:joe/my_repo.git
Run Code Online (Sandbox Code Playgroud)

git clone git@github-client:client/his_repo.git
Run Code Online (Sandbox Code Playgroud)

如果您只想使用两封电子邮件,则只需将每个克隆.git/config与所需[user]设置分开即可.

  • @Martin,不,这是关于使用两个不同的帐户向GitHub进行身份验证,每个帐户都有自己的私钥.我认为你正在使用不同的电子邮件,但作为一个用户连接到GitHub. (2认同)