Mac 配置多 git 账户

816 阅读3分钟

问题描述

工作后基本上是使用 mbp 来进行日常开发,在公司里使用的是 gitlab,而自己使用的是 github。而默认情况下,一台 Mac 电脑只对应一个 git 账户,这样一来如果想往自己的 github 仓库 push 代码,就会很不方便。为了实现这个目的,我在此做一下记录,方便大家能配置自己的多 git 账户。

配置步骤

因为我刚入职的时候,是全局配置的 gitlab 账户,因此这里需要先清除掉全局配置的 email 和 name,命令如下:

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

只需要清除掉这两个就好了,如果你一开始配置了 gitlab 私钥和公钥,也没关系,可以不用清除。

生成 github 密钥

Mac 下管理 ssh 密钥的目录是 .ssh,因此进入到这个目录:

cd ~/.ssh

然后生成密钥,生成密钥的命令是 ssh-keygen,这里使用我注册 GitHub 时的邮箱来生成密钥:

ssh-keygen -t rsa -C "xxx@qq.com"

回车后会提示输入密钥名字,默认的是 id_rsa。因为入职的时候 gitlab 的密钥使用的是 id_rsa,因此这里为了区分,对其进行命名为 id_rsa_github

如果你 gitlab 也没有配置过密钥,可以如法炮制。

将公钥添加到 GitHub

带有 .pub 的就是公钥,使用以下命令查看公钥:

cat id_rsa_github.pub

公钥需要添加到 github,因此需要在 github 的设置里配置 ssh 公钥。找到 github 里的 settings,切换到 SSH and GPG keys,在这里新增公钥,将上述查看到的公钥全部复制并粘贴到文本区。

将私钥添加到本地

使用 ssh-add 命令将私钥添加到本地,使用命令如下:

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_github

使用命令 ssh-add -l 能看到 gitlab 和 github 私钥是否添加成功。

但是这样会有一个问题,就是每次开机的时候都得添加一次,不然在 push 代码的时候会出现以下提示:

mac Please make sure you have the correct access rights and the repository exists.

为了每次开机自动添加私钥到本地,我们需要创建一个脚本程序,开机自动执行上述命令。

打开后创建一个程序,命名为 ssh-add-auto

然后在系统偏好设置->用户与群组->选择登录项里添加 ssh-add-auto

配置本地私钥

.ssh 目录下新建一个 config 文件,内容如下:

# gitlab
Host gitlab
HostName gitlab.com
User xxx
IdentityFile ~/.ssh/id_rsa

# github
Host github
HostName github.com
User xxx
IdentityFile ~/.ssh/id_rsa_github

然后保存即可。至此我们已经完成了配置,每次从不同仓库拉取项目的时候,再配置一下本地 email 和 name,不要再配置成全局的了,否则 push 代码的时候 name 会以全局配置的为准。