Git添加多账号多配置
文章目录
简述
在实际开发中,我们经常碰到有关 Git 多账号的两种情况,一种是:不同的项目有不同的配置需求,比较常见的就是用户名或者邮箱不一样。第二种是:同一台电脑,需要拉取不同服务器的工程,且使用的邮箱不一样,这个时候需要配置 SSH 相关的 key,例如 Gitee,Github,或者公司的 Git 的地址。那么如何去解决这两个问题呢?
不同的项目,不同的配置
在 Git 使用中,我们都知道使用git config
来配置 git 需要使用的相关配置。一般如下使用:
1 2 |
$ git config --global user.name "xxxx" $ git config --global user.email "xxxx@gmail.com" |
上面这种配置方式,加上了--global
参数,这个参数表示当前的配置为全局配置,即所有 Git 工程都会使用该配置。
但是 Git 还有一种配置方式,就是不加上--global
参数。如果不加上这个参数,表示当前的配置只添加到当前的项目,如下:
1 2 |
$ git config user.name "xxxx" $ git config user.email "xxxx@gmail.com" |
当我们使用git config --list
查看时,可以看到会有两个配置user.name
和 user.email
。Git 读取配置时,会优先读取本项目的配置,没有则去读取全局配置,这样就可以实现不同项目,使用不同的配置–不加上--global
参数。
不同 Git 服务器,添加不同的 SSH
主要的思路是为不同的 Git 服务器,配置不同的 SSH key 值。比如要为 Gitee 和 Github 生成不同的 key,具体的步骤:
为 Gitee 的邮箱账号配置不同的 key 值
1
$ ssh-keygen -t rsa -C 'xxxxx@163.com' -f ~/.ssh/gitee_id_rsa
为 Github 的邮箱账号配置不同的 key 值
1
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
在 ~/.ssh 目录下新建一个 config 文件,添加如下内容(其中 Host 和 HostName 填写 git 服务器的域名,IdentityFile 指定私钥的路径)。如下例子:
1 2 3 4 5 6 7 8 9 10
# gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa
把对应的公钥 xxx.pub 内容复制到对应的服务器 SSH Key 配置中
测试
1 2
$ ssh -T git@gitee.com $ ssh -T git@github.com
简述
在实际开发中,我们经常碰到有关 Git 多账号的两种情况,一种是:不同的项目有不同的配置需求,比较常见的就是用户名或者邮箱不一样。第二种是:同一台电脑,需要拉取不同服务器的工程,且使用的邮箱不一样,这个时候需要配置 SSH 相关的 key,例如 Gitee,Github,或者公司的 Git 的地址。那么如何去解决这两个问题呢?
不同的项目,不同的配置
在 Git 使用中,我们都知道使用git config
来配置 git 需要使用的相关配置。一般如下使用:
1 2 |
$ git config --global user.name "xxxx" $ git config --global user.email "xxxx@gmail.com" |
上面这种配置方式,加上了--global
参数,这个参数表示当前的配置为全局配置,即所有 Git 工程都会使用该配置。
但是 Git 还有一种配置方式,就是不加上--global
参数。如果不加上这个参数,表示当前的配置只添加到当前的项目,如下:
1 2 |
$ git config user.name "xxxx" $ git config user.email "xxxx@gmail.com" |
当我们使用git config --list
查看时,可以看到会有两个配置user.name
和 user.email
。Git 读取配置时,会优先读取本项目的配置,没有则去读取全局配置,这样就可以实现不同项目,使用不同的配置–不加上--global
参数。
不同 Git 服务器,添加不同的 SSH
主要的思路是为不同的 Git 服务器,配置不同的 SSH key 值。比如要为 Gitee 和 Github 生成不同的 key,具体的步骤:
为 Gitee 的邮箱账号配置不同的 key 值
1
$ ssh-keygen -t rsa -C 'xxxxx@163.com' -f ~/.ssh/gitee_id_rsa
为 Github 的邮箱账号配置不同的 key 值
1
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
在 ~/.ssh 目录下新建一个 config 文件,添加如下内容(其中 Host 和 HostName 填写 git 服务器的域名,IdentityFile 指定私钥的路径)。如下例子:
1 2 3 4 5 6 7 8 9 10
# gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa
把对应的公钥 xxx.pub 内容复制到对应的服务器 SSH Key 配置中
测试
1 2
$ ssh -T git@gitee.com $ ssh -T git@github.com
文章作者 卒子行
上次更新 2022-09-09