配置同时使用gitlab和github

配置步骤

1. 分别生成两份密钥文件

git bash下执行以下命令,并将生成的文件分开存放:

1
2
ssh-keygen -t rsa -C 'your gitlab email'
ssh-keygen -t rsa -C 'your github email'

2. 设置SSH Key

将生成的两份id_rsa.pub文件内容分别对应复制粘贴到github和gitlab的SSH Key配置下

3. 将key在本地存储起来

git bash下执行以下命令,ssh-add后的路径为上面生成的id_rsa文件的路径:

1
2
3
ssh-agent -s
ssh-add ~/.ssh/github/id_rsa
ssh-add ~/.ssh/id_rsa

PS:如果执行ssh-add时报了以下错误,需先执行: ssh-agent bash 命令

Could not open a connection to your authentication agent.

4. .ssh目录下创建config文件来管理key

在用户家目录下的.ssh目录(如果不存在可自己创建)下创建config文件,内容如下(需自行替换对应的内容):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Host github.com // 不动
    HostName ssh.github.com // 不动
    User xxxx@xxx.com // 你自己的github邮箱
    PreferredAuthentications publickey // 不动
    IdentityFile ~/.ssh/github/id_rsa // github用的rsa文件路径
    Port 443 
    // 如果ssh -T git@github.com的时候报 ssh: connect to host github.com port 22: Operation timed out就把Port这条加上吧

Host 192.168.0.231 // 你们公司gitlab的ip地址
    HostName 192.168.0.231 //与Host保持一致
    User xxx@xxxx.com // 你gitlab的邮箱
    IdentityFile ~/.ssh/id_rsa //  gitlab用的rsa文件路径
    Port 64222 // 你们公司gitlab的ip端口

5. 验证

git bash下执行以下命名验证配置:

1
2
ssh -T git@github.com
ssh -T git@gitlab的hostname

如果有看到successfully或Welcome的相关信息,说明以及配置成功

设置仓库使用的提交用户

针对项目配置

在初始化项目(本地创建项目、通过git clone或IDEA下载仓库)后,可以通过以下命令设置该项目提交时使用的用户,git bash下执行:

1
2
git config --local user.name 'your name'
git config --local user.email 'your email'

命令执行后会修改项目根目录下的.git目录下的config文件,你也可以直接修改这个文件,加入以下配置:

1
2
3
[user]
	name = your name
	email = your email

全局配置

如果不想针对一个一个项目设置,可以通过配置全局的参数对每个项目生效(相当于缺省的默认参数),但缺点就是只能设置一个用户,可以通过以下命令设置全局使用的用户,git bash下执行:

1
2
git config --global user.name 'your name'
git config --global user.email 'your email'

Conditional Includes

在 git 2.13 版本中,增加了 conditional includes 配置,可针对不同的根目录使用不同的.gitconfig配置文件,这样就可以针对不同项目使用不同的用户了。比如针对github和gitlab项目配置不同的用户,修改用户家目录下的.gitconfig文件,加入以下配置(项目存放路径需自己替换):

1
2
3
4
[includeIf "gitdir:D:/Dev/github/"]
    path = .github
[includeIf "gitdir:D:/Dev/gitlab/"]
    path = .gitlab

在用户家目录下分别创建.github和.gitlab,并加入以下配置:

  • .github
1
2
3
[user]
	name = your github name
	email = your github email
  • .gitlab
1
2
3
[user]
	name = your gitlab name
	email = your gitlab email

配置完成后可以到配置的目录下执行以下命令进行校验是否生效:

1
2
git config --show-origin --get user.name
git config --show-origin --get user.email

推荐资料

加载评论