问题描述
工作后基本上是使用 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 会以全局配置的为准。