同一个电脑配置两个github账号
mac中.ssh文件夹在根目录下,所以表示成 ~/.ssh/。
一、同一个电脑配置两个github账号
1、分别为两个GitHub账号生成SSH密钥
$ cd ~/.ssh $ ssh-keygen -t rsa -f id_rsa -C "camillehou666@gmail.com" $ ssh-keygen -t rsa -f id_rsa_github -C "zhugeshuiying@126.com"
操作完成后,在 ~/.ssh/ 路径下会出现四个文件:
id_rsa id_rsa.pub id_rsa_github id_rsa_github.pub
2、在GitHub账户添加SSH公钥
使用下列命令获取两个SSH公钥的值:
$ cat id_rsa.pub $ cat id_rsa_github.pub
把这两个值分别粘贴到GitHub账号中的SSH keys中保存。
3、设置配置文件让不同账号访问不同SSH密钥
使用下面的命令在~/.ssh/下新建一个名为config的文件并编辑:
$ touch config $ vim config
填入以下内容:
# 第一个github账号 # github user(camillehou666@gmail.com) Host camille666.github.com HostName github.com User camille666 IdentityFile ~/.ssh/id_rsa # 第二个github账号 # github user(zhugeshuiying@126.com) Host zhugeshuiying.github.com HostName github.com User zhugeshuiying IdentityFile ~/.ssh/id_rsa_github
4、本地添加私钥
然后清空一下本地的SSH缓存,添加SSH私钥到ssh-agent:
$ ssh-add -D $ eval "$(ssh-agent -s)" $ ssh-add id_rsa $ ssh-add id_rsa_github
最后确认一下新密钥已经添加成功:
$ ssh-add -l
5、测试两个帐户是否可用
$ ssh -T git@camille666.github.com $ ssh -T git@zhugeshuiying.github.com
如果出现“Hi zhugeshuiying! You've successfully authenticated, but GitHub does not provide shell access.”的提示,说明已经设置成功。
6、克隆仓库
# 原来 $ git clone git@github.com: 用户名/test.git #现在 $ git clone git@camille666.github.com:camille666/wpk-compiler.git $ git clone git@zhugeshuiying.github.com:zhugeshuiying/testpaper.git
7、清除git的全局设置
使用 git config --list 查看当前配置。
如果你之前在设置本地仓库和github连接的时候设置过user.name和user.email,那么你必须首先清楚掉该设置,因为不清楚掉该设置,两个账号在提交资料的时候,验证肯定冲突。
只能设置一个全局的user.name和user.email,而你现在有两个账号。
$ git config --global --unset user.name $ git config --global --unset user.email
8、设置每个项目repo自己的user.email

【添加隐私邮箱】
GitHub提供了两种方法来保护我们的邮箱隐私:
- 使用GitHub专用的替代邮箱;
如果勾选第1项,且不勾选第2项,要push成功,git这样设置
$ git config user.email "camillehou666@gmail.com" $ git config user.name "camille666" $ git config user.email "zhugeshuiying@126.com" $ git config user.name "zhugeshuiying"
git设置的邮箱尽量和github的邮箱保持一致。
- 在推送时发现隐私邮箱则阻止推送;
如果勾选第2项,要push成功,要么去掉第一项勾选,要么把修改git设置
$ git config user.email "camille666@users.noreply.github.com" $ git config user.name "camille666" $ git config user.email "zhugeshuiying@users.noreply.github.com" $ git config user.name "zhugeshuiying"
二、同一个电脑配置github和gitlab账号
# 该文件用于配置私钥对应的服务器 # github user(camillehou666@gmail.com) Host github.com HostName github.com User camille666 IdentityFile ~/.ssh/id_rsa_github # 建一个gitlab别名,新建的帐号使用这个别名做克隆和更新 # gitlab user(houyi154084@alibaba-inc.com) Host gitlab.alibaba-inc.com HostName gitlab.alibaba-inc.com User houyi154084 IdentityFile ~/.ssh/id_rsa
三、一些问题
1、github修改用户名和邮箱后,这个地方头像不显示也没办法点击了,是什么原因?

这是因为commit里显示的头像和用户名是根据你本地Git配置决定的,不是由你的Github账户决定的。当你的Github账户里的邮箱和你本地Git配置里刚好一致时,Github会把commit里的邮箱替换为用户名和头像。
同一个电脑配置两个github账号的更多相关文章
- 同一个电脑配置两个Git问题
拿到公司电脑后,正常配置gitlab,以及设置邮箱等等,可以使用公司邮箱,以及一系列设置 git config --global user.name "userName" git ...
- 如何在一个电脑上使用两个github账号
问题描述:公司电脑上默认使用的是公司的github账号,如果希望写一些代码放到个人的github账号上,就需要配置让一个电脑上可以使用两个github账号 原理:管理两个SSH key 1.生成两个S ...
- Git配置多个github账号免密登录
在公司开发中,有时候会存在公司账户跟私人账户共存,并随时需要切换的情况,这种情况下git可以配置多个ssh-key,无缝切换账号. 假如有两个github账号,一个是私人github账号,一个是公司g ...
- 同一个电脑安装两个jdk版本
同一个电脑安装两个jdk版本 场景:公司项目使用的jdk为1.,最近不是很忙,学习scala.该系统使用到了jdk1.8的特性,所以I need 俩版本,开整!!! . 准备两个版本的jdk我的两个j ...
- 一台电脑配置多个GigHub账号
换了新的公司,原来的公司用SVN(比较老了),自己平时用码云(Gitee),新公司使用GitHub.前天通知我注册GitHub账号,但是并未通知用户名的事情(要求用自己的名字),原来的GitHub账号 ...
- 201709012工作日记--一台电脑创建两个Github账户上传代码
1. 在一台主机上面使用多个GitHub账号 有时候,我们需要将个人账号和公司账号区分,这时候我们就会需要在一台电脑上使用2个不同的git账号. 2. 上传文件 http://blog.csdn.ne ...
- 两个 github 账号混用,一个帐号提交错误
问题是这样,之前有一个github帐号,因为注册邮箱的原因,不打算继续使用了,换了一个新的邮箱注册了一个新的邮箱帐号.新账号提交 就会出现下图的问题,但是原来帐号的库还是能正常提交. 方法1:添加 ...
- 新电脑配置 git 同步github账户
1.下载安装git 2.初始化 仓库文件夹 git init 3.生成公钥ssh-keygen -t rsa -C "youremail@example.com"4.github ...
- 如何在同一台电脑上使用两个github账户(亲测有效)
1 前言 由于有两个github账号,要在同一台电脑上同步代码,需要给每一个账号添加一个SSH public key,此时推送时git push origin,不知道是哪个账号的远程仓库名称,所以需要 ...
随机推荐
- Kostya the Sculptor(贪心
这题本来 想二分.想了很久很久,解决不了排序和二分的冲突. 用贪心吧.. 题意: 给你n个长方形,让你找出2个或1个长方体,使得他们拼接成的长方体的内接球半径最大(这是要求最短边越大越好)( ...
- Java核心技术 卷一 复习笔记(丁
面向对象1.面向对象设计概述 1.1.面向对象是什么 面向对象是一种程序设计范型(简称OOP),是针对对象进行开发,简化开发过程的一种设计方式 1.2.类 类是构造对象的模板,相当于一个烘焙模板,而对 ...
- jpa 如果返回java对象,会自动更新对象值(坑!!)
//上一段示例代码List<Member> memberList = memberDao.findByLoginNameIn(names);for (Member m : memberLi ...
- 简单的JAVAWeb选课系统
该系统管理员可以添加和删除学生.教师,教师可以修改自己信息.添加课程.浏览自己课程,学生可以修改自己的信息.选课.浏览全部课程. 首先展示文件: 然后就是一次展示代码: Guanli包中代码: pac ...
- LOJ2265. 「CTSC2017」最长上升子序列
题意:中文题意很清楚 LOJ2263 分析: 根据Dilworth定理,最小链覆盖=最长反链. 问题转化为求 $k$ 个最小不上升序列能覆盖的最大数的个数. 参考链接: 1. https://blog ...
- Spring Aop实例@Aspect、@Before、@AfterReturning@Around 注解方式配置(转)
用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before.@Around和@After等advice.最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了A ...
- The method format(String, Object[]) in the type String is not applicable for the arguments
今天,我弟遇到一个有意思的错误~ 程序: package com.mq.ceshi1; public class StringFormat { public static void main(Stri ...
- Laravel 5.8: Automatic Policy Resolution
Laravel 5.8: Automatic Policy Resolution March 26, 2019 One of the new features in Laravel 5.8 allow ...
- 路由器配置——基于链路的OSPF简单口令认证
一.实验目的:掌握基于链路的OSPF简单口令认证 二.拓扑图: 三.具体步骤配置: (1)R1路由器配置 Router>enable Router#configure terminal Ente ...
- codeforces1213G Path Queries 并查集
题意 给定n个结点的树,每条边有边权,有m个询问,每个询问给一个\(q_i\)输出树上有多少点对的简单路径上最大的边权不超过\(q_i\). 分析 用并查集维护点集,同时维护大小. 将所有边按边权排序 ...