Git添加多账号多配置
2021-11-5|2023-5-5
Lapisy
type
Post
status
Published
date
Nov 5, 2021
slug
git-mutil-account
summary
我们经常碰到有关Git多账号的两种情况,一种是:不同的项目有不同的配置需求,比较常见的就是用户名或者邮箱不一样。第二种是:同一台电脑,需要拉取不同服务器的工程,且使用的邮箱不一样,这个时候需要配置SSH相关的key,例如Gitee,Github,或者公司的Git的地址。那么如何去解决这两个问题呢
tags
Git
category
ANR
icon
password
简述
在实际开发中,我们经常碰到有关Git多账号的两种情况,一种是:不同的项目有不同的配置需求,比较常见的就是用户名或者邮箱不一样。第二种是:同一台电脑,需要拉取不同服务器的工程,且使用的邮箱不一样,这个时候需要配置SSH相关的key,例如Gitee,Github,或者公司的Git的地址。那么如何去解决这两个问题呢?
不同的项目,不同的配置
在Git使用中,我们都知道使用
git config
来配置git需要使用的相关配置。一般如下使用:$ git config --global user.name "xxxx" $ git config --global user.email "xxxx@gmail.com"
上面这种配置方式,加上了
--global
参数,这个参数表示当前的配置为全局配置,即所有Git工程都会使用该配置。但是Git还有一种配置方式,就是不加上
--global
参数。如果不加上这个参数,表示当前的配置只添加到当前的项目,如下:$ 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值
$ ssh-keygen -t rsa -C 'xxxxx@163.com' -f ~/.ssh/gitee_id_rsa
- 为Github的邮箱账号配置不同的key值
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
- 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)。如下例子:
# 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配置中
- 测试
$ ssh -T git@gitee.com $ ssh -T git@github.com
简述
在实际开发中,我们经常碰到有关Git多账号的两种情况,一种是:不同的项目有不同的配置需求,比较常见的就是用户名或者邮箱不一样。第二种是:同一台电脑,需要拉取不同服务器的工程,且使用的邮箱不一样,这个时候需要配置SSH相关的key,例如Gitee,Github,或者公司的Git的地址。那么如何去解决这两个问题呢?
不同的项目,不同的配置
在Git使用中,我们都知道使用
git config
来配置git需要使用的相关配置。一般如下使用:$ git config --global user.name "xxxx" $ git config --global user.email "xxxx@gmail.com"
上面这种配置方式,加上了
--global
参数,这个参数表示当前的配置为全局配置,即所有Git工程都会使用该配置。但是Git还有一种配置方式,就是不加上
--global
参数。如果不加上这个参数,表示当前的配置只添加到当前的项目,如下:$ 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值
$ ssh-keygen -t rsa -C 'xxxxx@163.com' -f ~/.ssh/gitee_id_rsa
- 为Github的邮箱账号配置不同的key值
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
- 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)。如下例子:
# 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配置中
- 测试
$ ssh -T git@gitee.com $ ssh -T git@github.com