背景:
学习git的时候, 大家刚开始使用之前都配置了一个全局的用户名和邮箱。
git config --global user.name "test"
git config --global user.email "test@xx.com"
这个配置,git保存在~/.gitconfig中。
有时候我们需要在一个机器上使用多个git帐号,比如在工作中,都会有一个工作的Git帐号,另外有一个自己使用的git帐号。这时候就需要配置两个帐号,这样可能引起冲突。下面展示如何解决,假设之前已经配置好了工作的帐号,下面是如何添加一个个人工作git。
1、创建个人的SSH key:
#新建SSH key:
$ cd ~/.ssh
ssh-keygen -t rsa -C "youremail@example.com"
# 设置名称为id_rsa_my(名字随意)
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): id_rsa_my
2、新增对应id_rsa
因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
ssh-add ~/.ssh/id_rsa_my
注意:之前已经有的id_rsa也要add进来:ssh-add ~/.ssh/id_rsa
如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:
ssh-agent bash
ssh-add ~/.ssh/id_rsa_my
3、修改config文件
在~/.ssh目录下找到config文件,如果没有就创建:
touch config # 创建config
然后在config中追加配置,配置规范如下:
Host host(Host简称,使用命令ssh host可连接远程服务器,如:ssh github)
User/Email 登录用户名(如:zlzsam/zlzsam@hotmail.com)
HostName 主机名用ip或域名,建议使用域名(如:github.com)
Port 服务器open-ssh端口(默认:22,默认时一般不写此行 )
IdentityFile 证书文件路径(如~/.ssh/id_rsa_*)
比如我添加的配置如下:
#公司的
Host git.xxxxx.com
HostName git.xxxxx.com
User 我的名字
IdentityFile /Users/xxxx/.ssh/id_rsa
#个人的
Host code.aliyun.com
HostName code.aliyun.com
User yyyyy
IdentityFile /Users/xxxxx/.ssh/id_rsa_my
4、添加.pub文件
打开新生成的~/.ssh/id_rsa_my.pub文件,将里面的内容添加到code.aliyun.com后台。
5、测试
ssh -T git@code.aliyun.com
显示:Welcome to GIT, yyyyy!
6、修改提交显示的用户名和密码
针对自己的项目, 在项目根目录下进行单独配置用户名和邮箱。如果不修改,默认使用git config –global设置的用户名和密码。
git config user.name "xx"
git config user.email "ss@xx.com"
修改的配置git保存在当前项目的.git下的config文件中。
之前通过git config –global设置的用户名和密码可以不删除,当在当前项目下面查看git配置时候,看到的是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置。