【前言】
在企业工作环境中,我们一般会用企业的github或gitlab等账号,同时也会配置相关的ssh访问方式。
当我们想要同时操作个人github或gitlab仓库时,就无法重复使用现有的ssh公钥配置在个人账号里。
一种解决办法是不使用ssh方式,直接使用https方式访问个人仓库是可行的,但我们今天介绍一种方法可以让我们在同一台电脑中配置两个ssh访问。
【配置SSH】
生成新的RSA密钥对
我们无法在github站点不同账户配置中使用同一个RSA公钥,将已经添加过的公钥再次添加到另一个不同账户时,会提示密钥已经被使用过了,这时候我们需要新创建一个密钥对
打开cmd输入命令:ssh-keygen -t rsa -C "随意注释字符" -f C:/Users/{username}/.ssh/{keyname}
一路回车,生成新的密钥对
其中两个参数,username 为个人电脑账户名
keyname 自行给新的密钥对起一个名字,例如我输入 7tiny,那么生成出来的密钥对如下:
将新公钥添加到将要访问的 github 账户
这一步没啥说的,如果不清楚如何配置,参考历史文章 --> Git SSH 认证配置 - 7tiny - 博客园 (cnblogs.com)
添加本地配置文件
在 .ssh 目录添加配置文件,文件名 config
注意没有文件扩展名
文件内容也非常简单,按如下配置即可
Host 7tiny
HostName github.com
User git
IdentityFile ~/.ssh/7tiny
文件说明
Host:标识,随意取一个即可
HostName:仓库站点域名,我使用的是 github,因此域名填 github.com
User:默认git即可
IdentityFile:填刚才生成时的密钥对地址
拉取新账户的仓库源码
我们通过ssh方式直接克隆新仓库的源码
克隆时,可以指定采用新的ssh密钥配置此仓库,将 [email protected] 替换为前面配置的 Host 名称(本文用的是7tiny)
例如:git clone 7tiny:dotnet/corefx.git
当然,不这么指定也是可以成功 clone 的,clone后,打开本地仓库目录下的 .git 文件夹
修改 config 配置文件里的 url,将 github.com 换为 Host 名称(本文用的是7tiny),和上述clone时配置效果是一样的
【说一点题外话】
经过上述配置,git的正常操作都已经ok了,但是还有点小细节问题。
我们提交代码采用的账号和邮箱用的都是 global 配置里的,这样在提交代码时,个人仓库里的提交记录就会被识别为公司账号的提交,这样首页是不会显示小绿点的,因为不算“自己”的贡献
这个处理办法就是将当前代码仓库的姓名和邮箱换成个人账号的姓名和邮箱
方法一、通过命令行配置
首先进入当前仓库地址打开 git 命令行,通过 git config 命令修改本地姓名邮箱
git config user.name "xxx name"
git config user.email "[email protected]"
方法二、打开 config 配置文件直接修改
打开本地代码仓库目录下的 .git 文件夹下的 config 配置文件
添加 user 节点
[user]
name = sevenTiny
email = [email protected]
保存即可
用任意一种方式配置好后,可以通过git config --local --list
查看当前仓库配置
通过 git config --global --list
查看全局配置,以确保全局配置没有被改错(local 和 global 不使用同一个姓名邮箱情况下)
后续提交的代码将会用此姓名和邮箱操作仓库,当然,小绿点也是“你”的了