配置两个Git账户

1,504 阅读1分钟

公司的代码在 gitlab 上,还有自己项目托管在 github,需要存在两个 git 账户。

修改配置

多个账户需要在每个项目中分别配置用户名和邮箱,如果有配置过全局用户名和邮箱,可以删除。

$ git config --global --unset user.name
$ git config --global --unset user.email

生成密钥

需要给每个账户生成一对密钥;

$ ssh-keygen -t rsa -b 4096 -C <email>

然后提示 Enter a file in which to save the key (/Users/zq/.ssh/id_rsa): [Press enter], 两次生成需要不同的密钥文件。

Enter a file in which to save the key (/Users/zq/.ssh/id_rsa): id_rsa_github
Enter a file in which to save the key (/Users/zq/.ssh/id_rsa): id_rsa_gitlab

分别生成了两组文件,名称分别是 id_rsa_github1、id_rsa_github2

当提示输入密码信息时,直接回车跳过,否则每次拉代码都需要输入密码。

添加私钥到本地

$ ssh-add ~/.ssh/id_rsa_github
$ ssh-add ~/.ssh/id_rsa_gitlab

添加后可以使用 ssh-add -l 命令进行查看。

配置本地密钥

进入 .ssh 文件加,修改 config 文件,如果没有此文件需要新建。

$ cd ~/.ssh
$ vim config

文件内容:

Host github  # 别名,自定义
HostName gitlab.com  # 托管网站的域名
User user2  # 用户名
IdentityFile ~/.ssh/id_rsa_github  # 使用的密钥文件

Host gitlab
HostName gitlab.com
User suer1
IdentityFile ~/.ssh/id_rsa_gitlab

添加 ssh keys

分别在 gitlab 和 github 上添加 ssh keys,都有详细的添加步骤介绍。比如在 github 添加 ssh keys 页面点击 generating SSH keys

显示公钥再粘贴到 github/gitlab.

$ ssh-add -K ~/.ssh/id_rsa

测试配置是否成功

直接使用别名就可以。

$ ssh -T github
$ ssh -T gitlab

克隆代码

需要将地址更改为别名

$ git clone git@github.com:zq/test.git
$ git clone git@github:zq/test.git  # 使用别名

配置已有仓库

如果已经拉取本地仓库,除了修改用户名和邮箱,还需要配置文件。

$ cd .git
$ vim config

修改 config 文件中已有 remote "origin" 信息。

[remote "origin"]
    url = git@github.com:zq/test.git
    fetch = +refs/heads/*:refs/remotes/origin/*

github.com 修改为 github 别名。