如何在一台电脑上使用多个Git身份

如何在一台电脑上使用多个Git身份

hash070 388 2022-07-07

简介

Git是通过用户名和邮箱来确认你的身份的,所以你需要修改项目的git config文件设置来实现身份切换
否则即使你开了一个GitHub小号,提交上的代码还是会显示你大号的信息,这样就不符合预期了。

生成密钥并导入添加到GitHub帐号中

生成一个新的密钥以供小号使用

$ ssh-keygen -t rsa -C "your_email@maildomain.com"

(注意修改文件名,不要错误地覆盖了已经存在的老密钥
将公钥添加到GitHub帐号就很简单了,在帐号设置中添加SSH密钥即可
image-20220707114253845

方法1:直接修改项目git文件

找到当前项目下面的.git/config文件
在文件中添加如下内容

[user]
  name = 你的用户名
  email = 你的邮箱
[core]
  sshCommand = ssh -i ~/.ssh/id_rsa_juejuezi

附 ssh key密钥创建命令:ssh-keygen -t rsa -C "你的邮箱"

方法2:修改全局配置(推荐)

第一个方法如果一个一个修改,一两个项目还好,如果有很多项目的话就会很麻烦且不利于管理,推荐使用修改配置文件的方法来实现
Git全局配置文件在~/.gitconfig中,如果你是windows,那么它的位置在%USERPROFILE%\.gitconfig,这是一个隐藏文件,你可能需要特别的设置才能看到它
image-20220707095644207
我们可以通过 includeIf 配置匹配不用的目录映射到不同配置文件上,然后在不同的配置文件上来进行区分配置。
例如将该文件的内容参照如下格式修改

[user]
  name = hash070
  email = hash070@zzuli.top
[includeIf "gitdir:~/JuejueziGit"]
  path = ~/.gitconfig-juejuezi

然后再在.gitconfig的同级目录下创一个gitconfig-gitee文件
在这里面写入新的用户配置,其中user中包含了用户的名称和邮件信息,请确保他们与你的GitHub帐号的信息一致,core中包含了该用户的密钥,请确保该密钥的公钥已经添加到该GitHub账户上了

[user]
  name = juejuezi
  email = juejuezi@zzuli.top
[core]
  sshCommand = ssh -i ~/.ssh/id_rsa_juejuezi

StackOverflow参考问答:https://stackoverflow.com/questions/8801729/is-it-possible-to-have-different-git-configuration-for-different-projects