个人日常编写点小玩具,code 的版本控制一般托管于GitHub,但是公司内部使用 GitLb 来进行代码版本控制,这样为了能够在同一台 MacBook(自带,公司有补贴)日常区分出两个账户,通过翻阅资料做了如下配置。
操作环境
-
MacBook
-
Git(git version 2.39.5)
-
命令行终端
SSH密钥生成
在终端,使用个人邮箱和公司邮箱分别生成 SSH key
:
#创建公司的SSH-Key
ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa
#创建个人的SSH-Key
ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa_personal
同时会生成对应的公钥,以.pub
为文件后缀,这个公钥是用来上传到 Git 托管服务器的,用来进行 SSH 通讯。生成的密钥文件如下图所示:
基于 SSH config 的隔离
有了上面的密钥,如何进行账户的隔离呢?很简单,通过指定密钥。在~/.ssh
下创建 config 文件,如果没有的话:
# 创建配置文件
touch config
然后在 SSH config 文件中分别指定账户:
# 个人
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
# 公司
Host gitlb.yourcompany.com # 替换为你的公司托管服务器
HostName gitlb.yourcompany.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
区分账户
由于公司的项目远远多于个人项目,我一般把公司账户作为 Git 的全局使用账户(当然你也可以正好相反):
# 全局配置默认使用公司账户
git config --global user.name "you" && git config --global user.email "[email protected]"
然后个人项目目录下每次执行(如果你有更好的方法欢迎评论区指教)
# 个人项目配置,每次新创建项目都需要执行
git config --local user.name "schacon" && git config --local user.email "[email protected]"
这样,把公钥上传到远程 Git 托管服务器后,就可以分别在公司和个人项目里使用对应的 Git 账户了。
以上。
Reference
如果这篇文字对你有帮助,你又恰好想握手言谢,那么可以请我喝杯咖啡
: