【前言】

在企业工作环境中,我们一般会用企业的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密钥配置此仓库,将 git@github.com 替换为前面配置的 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 "aaa@bbb.xx.com"

方法二、打开 config 配置文件直接修改

打开本地代码仓库目录下的 .git 文件夹下的 config 配置文件

添加 user 节点

[user]
name = sevenTiny
email = xxx@qq.com

保存即可

用任意一种方式配置好后,可以通过git config --local --list 查看当前仓库配置

通过 git config --global --list 查看全局配置,以确保全局配置没有被改错(local 和 global 不使用同一个姓名邮箱情况下)

后续提交的代码将会用此姓名和邮箱操作仓库,当然,小绿点也是“你”的了

最新文章

  1. 从零开始学Python第一周:Python基础(上)
  2. mysql安装使用笔记
  3. 使用java连接MySQL数据库
  4. JavaScript获取图片的原始尺寸
  5. MySQL:日期函数、时间函数总结
  6. 使用UDEV绑定ASM多路径磁盘
  7. UITabBar的隐藏
  8. 织梦dedecms自定义字段在首页列表页文章页的调用
  9. sqlserver安全加固
  10. Sql开发技巧
  11. javascript焦点图之缓冲滚动无缝切换
  12. window下实现白天黑夜切换不同桌面
  13. 滴水穿石-07Java开发中常见的错误
  14. 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像
  15. Linux命令(十) 在文件或目录之间创建链接 ln
  16. Mysql5.5升级到5.6步骤详解 小版本大版本
  17. memcpy 的内存拷贝函数
  18. Linux平台上SQLite数据库教程(一)——终端使用篇
  19. 播放MP3
  20. [UOJ181]密码锁

热门文章

  1. Git 实战代码分支管理 | Git Flow 策略
  2. 带你从入门到精通学习WireShark
  3. 前后端结合解决Excel海量公式计算的性能问题
  4. liunx下安装Jexus5.8.2独立版运行asp.net MVC5
  5. easui datagrid 行获取后台sql所有数据:支持行chockbox多选,输出选中行任意属性;支持点击表中属性实现跳转;支持分页。
  6. EASE-Grid经纬度与行列号转换公式 以 25KM的HDF数据为例
  7. nginx压力测试及限速
  8. 【大数据面试】ClickHouse:介绍、特点、数据类型、引擎、操作、副本、分片
  9. 解决aspnetcore-browser-refresh.js:234 WebSocket connection to 'wss://localhost:62356/Admin/' failed问题
  10. Chaos 测试下的若干 NebulaGraph Raft 问题分析