配置多个 Git 账号

458 阅读2分钟

配置多个 Git 账号

当我们在公司办公时,我们需要配置公司的 Git、且需要配置自己的 Git,当你遇到这个问题时,本篇可给你提供一些帮助。

本文以配置 GitHub、Gitlab 为例,其他同理。

第一次配置 Git 的同学可以参考我的另一篇文章:本地环境Git连接GitHub

步骤

生成 SSH key

生成第一个 SSH Key

ssh-keygen -t rsa -C 'Your_GitHub_Email'

会在 ~/.ssh 目录下生成id_rsaid_rsa.pub 两个文件、然后将id_rsa.pub 的内容添加到 GitHub 账户的 Setting 里面

接下来,我们就来生成第二个 SSH Key

ssh-keygen -t rsa -C 'Your_GitLab_Email' -f my_gitlab

注意:这次添加了-f my_gitlab 这样,~/.ssh 目录下就会生成my_gitlabmy_gitlab.pub 文件,将my_gitlab.pub 的内容添加到 gitlab 账户的 Setting 里面

将私钥配置到 Git 中

ssh-add id_rsa # 添加第一个账户 github

ssh-add my_gitlab # 添加第二个账户 gitlab

配置 config 文件

打开~/.ssh 文件,然后生成 config 文件,配置内容如下:

# config文件

# GitHub
Host xxx # 这里注意这个xxx,之后会使用到
HostName github.com # 这里是托管平台的域名
identityFile ~/.ssh/id_rsa

# Gitlab
Host yyyy
HostName gitlab.com
identityFile ~/.ssh/my_gitlab

测试 ssh-key 是否连通

ssh -T git@xxx # xxx为config 文件配置的Host

ssh -T git@yyyy # yyyy 同理

Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access. 如果出现这个就表示成功了,还剩最后两个步骤

自动切换 GitHub 账户

git clone git@xxx:GitHub用户名/仓库名.git

注意:这里与常规的 clone 不一样,需要修改 github.com 为 xxx、也就是之前配置到 Host、另一个账户同理、或者使用 gh

之后push可能会出现没权限问题,再执行一下ssh-add xxx就ok了、但是该操作重启之后会失效,可以通过配置 ~/.zshrc 解决

# 多个 git 添加权限
eval "$(ssh-agent -s)" >/dev/null 2>&1
ssh-add ~/.ssh/id_rsa >/dev/null 2>&1
ssh-add ~/.ssh/my_gitlab >/dev/null 2>&1

id_rsamy_gitlab~/.ssh 文件夹下 ssh-keygen 生成的文件名字

最后在仓库中修改提交的时候需要配置信息

# 在各仓库下
git config user.name "用户名"

git config user.email "邮箱号"

全局配置(建议全局配置主 Git 账户)

git config --global user.name "用户名"

git config --global user.email "邮箱号"

之后,就可以使用多个 Git 账户了。

参考