场景:比如个人person和公司work的多个github账号,这个时候在本地做操作,是无法用work账号操作person账号下的git仓库的。

当我用work提交属于person的代码的时候,会出现以下报错,提示无权限。

$ git push origin master
ERROR: Permission to person/git-start.git denied to work.
fatal: Could not read from remote repository.

使用git remote -v可查看当前仓库的远程git地址

$ git remote -v
origin git@github.com:person/git-start.git (fetch)
origin git@github.com:person/git-start.git (push)

那么,一台电脑上如何管理多个github账户呢?

设置SSH密钥

创建多个SSH密钥,并保存在对应的文件中

cd ~/.ssh

ssh-keygen -t rsa -C "work@163.com"

ssh-keygen -t rsa -C "person@163.com"

...

以上创建出id_rsa_work, id_rsa_work.pub和id_rsa_person, id_rsa_person.pub四份文件

将SSH密钥添加到Github账户

将密钥复制到剪切板

pbcopy < ~/.ssh/id_rsa_work.pub

将生成的密钥中的公钥内容(即.pub文件)的内容添加到不同的github账户中,流程如下:

  • 转到github的帐户设置
  • 点击“SSH密钥”,然后“添加SSH密钥”
  • 将密钥粘贴到“密钥”字段并添加相关标题
  • 点击“添加密钥”,然后输入您的Github密码进行确认

创建config配置文件来单独管理密钥

$ cd ~/.ssh/

$ sudo vim config

编辑config文件

# work
Host workHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_work# person
Host personHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_person

添加新的密钥

$ ssh-add id_rsa_work
$ ssh-add id_rsa_person

查看当前的密钥列表,查看是否添加成功

$ ssh-add -l

测试以确保Github识别密钥:

$ ssh -T work
Hi work! You've successfully authenticated, but GitHub does not provide shell access.$ ssh -T person
Hi person! You've successfully authenticated, but GitHub does not provide shell access.

试一下

在和远程库交互的时候,还有一点要注意,即git仓库地址的更改。

首先,回到命令行上,创建一个测试目录:

$ cd ~/documents
$ mkdir git-start
$ cd git-start

使用work账号,向Github添加一个空白的“readme.md”文件和PUSH:

$ touch readme.md
$ git init
$ git add .
$ git commit -am "first commit"
$ git remote add origin git@work:work/git-start.git
$ git push origin master

注意我们如何使用自定义帐户git@work,而不是git@github.com!

对于git@work:work/git-start.git。第一个work是在config文件里创建的Host,第二个work为你github的用户名。

再试一下person的PUSH和PULL操作,看是否成功

tips,更改远程仓库的命令

$ git remote set-url origin git@work:work/git-start.git

总结,一台计算机上管理多个github账户的核心就是

  • ssh密钥
  • config文件配置
  • git仓库远程地址的配置

如何在一台电脑上管理/切换多个github账户相关推荐

  1. 同一台电脑上使用两个 github 账号

    使用需求 通常情况下,我们会有两个 github 账号:一个是公司的,另一个是私人的.由于 github 是使用 SSH key 的 fingerprint (对应的公钥id_rsa_pub)来判定你 ...

  2. 在一台电脑上使用两个github账号

    问题描述: 我公司有一个github账号,每天工作把代码传上去,我觉得代码写的好,我同时想上传到自己的github账号上面去,但是目前只有一台电脑,如何在一台电脑上面进行设置,使这一台电脑可以同时上传 ...

  3. html5在别的电脑上打不开,U盘在别台电脑上打不开的原因分析及解决

    U盘经常被用来作为复制拷贝数据文件的重要工具,所以,不仅仅在自己的电脑使用,还要在别人的电脑上运行.相信大家都有遇到这样的情况,U盘在自己的电脑上好好的,却在别台电脑上无法打开,这是怎么回事? 一.U ...

  4. 计算机上2个用户,一台电脑上自然人纳税系统可以登录两个账号吗?

    一台电脑上自然人纳税系统可以登录两个账号吗? 当然可以,您先使用申报密码或者ca登录其中的一家企业,进入自然人个税软件后,点击右上角的"单位管理",点击"添加" ...

  5. 在同一台电脑上同时安装Python2和Python3

    目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3,取决于当前要使用的库.框架支持哪个版本. 例如:HTM ...

  6. 一台计算机如何创建多个用户,一台电脑怎么管理多个腾讯视频号

    原标题:一台电脑怎么管理多个腾讯视频号 最近几年短视频的吃香,此类平台实在是多,但是真正操作起来,才会发现让人烦不胜烦,每天一开工,都得一个平台一个平台登录,点开一个又一个账号看数据,好不容易把内容搞 ...

  7. 两个计算机系统安装,如何在一台电脑上同时重装两个系统|戴尔电脑怎么安装两个系统...

    有些用户,想用win10的同时,又想用win7,所以需要安装双系统.这篇文章就是白云一键重装系统给这类用户带来的方法教程,其实原理很简单,同一块硬盘,可以分成多个分区,然后再在上面分别安装系统即可. ...

  8. 电脑同时安装python2和3_一台电脑上同时安装python2和python3

    被python2的编码问题整的快晕了,python3对编码问题解决的不错 所以想安装下python3,但由于目前企业大多还是用python2,所以不想卸载2,让python2和python3共存. 本 ...

  9. 电脑可以同时装python2和3吗_在同一台电脑上同时安装Python2和Python3-Go语言中文社区...

    在同一台电脑上同时安装Python2和Python3 目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3, ...

最新文章

  1. php和python哪个做第二语言-php之后如何选择第二语言?
  2. 云计算平台管理的三大利器Nagios、Ganglia和Splunk
  3. ORA-27041: unable to open file--恢复被rm意外删除数据文件
  4. html下拉框设置默认值_如何设置HTML select下拉框的默认值?
  5. java动态内存分部,如何利用Java实现动态内存分配?
  6. FF:与吉利控股的合作取得实质性进展 双方技术团队正紧密对接
  7. HTML li标签排列有空白间隙
  8. 78oa mysql_78OA系统安装后无法打开解决方案
  9. 2015湖南省选集训DAY5——work(BZOJ4177)
  10. Q102:光线追踪场景(1)——地球仪
  11. PIM SM报文抓包和总结
  12. python 求解给定字符串中的最长DNA序列长度
  13. 【九天教您南方cass 9.1】 06 绘制方格网
  14. php ip纯真数据库Dat,php读取纯真ip数据库使用示例
  15. flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
  16. android手机wifi打不开,手机wifi开关打不开什么原因_手机wifi开关失灵的解决方法-系统城...
  17. 名词用作动词举例_名词活用作动词
  18. 虚拟机Hyper-V的安装以及使用教程
  19. 在云端管理您的所有身份(AAD)-第二部分
  20. 中标麒麟系统安装达梦8 数据库

热门文章

  1. 全球与中国自行车和零件制造市场发展规划及未来投资趋势展望报告2021年版
  2. 一起talk C栗子吧(第一百二十三回:C语言实例--显示变量和函数的地址)
  3. yum安装Imagick及扩展
  4. EasyUI DataGrid 合并单元格
  5. codeblocks如何watch指针
  6. HTML5 Web app开发工具Kendo UI Web中Grid网格控件的使用
  7. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind
  8. error C2664: “wcscpy”: 不能将参数 1 从“LPSTR”转换为“wchar_t *”
  9. 用微软安全工具加固网站安全 (URLScan Tool IIS Lock Tool)
  10. 12306被喷谁受益?带着正能量重新设计12306防黄牛购票机制