四步实现在一台电脑上使用多个github账号
四步实现在一台电脑上同时使用多个GitHub账号
今天和大家聊一下如何在一台电脑上同时使用多个GitHub账号,通过以下四个步骤就可以实现,其中第二个步骤为了便于叙述分成了几个小步骤。
1. 取消全局配置
在最开始使用GitHub配置ssh时,大部分人都使用过下面这两条语句:
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
这两条命令是在进行全局配置,对于想要在一台电脑上使用多个GitHub账号是不行的,需要利用下面的两条语句来取消全局配置。
git config --global --unset user.name
git config --global --unset user.email
2. ssh
2.1 生成ssh
在这里假设我们有三个GitHub账号想在一台电脑上同时使用,三个账号分别为:ID1,ID2,ID3,对应的邮箱分别为E1,E2,E3,现在需要生成三个ssh。
生成第一个ssh:
在桌面打开GitBash或者cmd(在桌面按住shift键再按右键或弹出在此处打开命令窗口)
ssh-keygen -t rsa -C "E1"
运行到这一步时输入红色方框中的内容 id_rsa_one
,表示第一个密钥。
生成第二个ssh:
紧接着运行下面这条语句:
ssh-keygen -t rsa -C "E2"
在红色方框中输入 id_rsa_two
生成第三个ssh:
再运行下面这条语句:
ssh-keygen -t rsa -C "E3"
在红色框中输入 id_rsa_three
至此三个ssh生成完毕。
将三个公钥文件 id_rsa_one.pub
id_rsa_two.pub
id_rsa_three.pub
(默认路径 C:\Users\你的用户名\.ssh
)分别复制粘贴到三个GitHub账号的ssh key中。
2.2 添加密钥
1、打开ssh-agent
(1)如果你是github官方的bash:
ssh-agent -s
(2) 如果你是其它,比如msysgit:
eval $(ssh-agent -s)
第一种如果不行就尝试第二种,成功的截图如下图所示:
2、添加私钥
ssh-add ~/.ssh/id_rsa_one
ssh-add ~/.ssh/id_rsa_two
ssh-add ~/.ssh/id_rsa_three
2.3 修改config文件
在 .ssh
文件夹下运行GitBash,生成 config
文件。
touch config
打开 config
文件,将以下内容复制到 config
文件中。
# 第一个
Host one.github.com
HostName github.com
User ID1 # 用户名1
IdentityFile ~/.ssh/id_rsa_one
# 第二个
Host two.github.com # 前缀名可以任意设置
HostName github.com
User ID2 # 用户名2
IdentityFile ~/.ssh/id_rsa_two
# 第三个
Host three.github.com # 前缀名可以任意设置
HostName github.com
User ID3 # 用户名3
IdentityFile ~/.ssh/id_rsa_three
如果 Host
始终为 github.com
,那么就只能使用一个私钥,通过上面的设置,每个账号使用了自己的 Host,但是每个 Host 的域名(HostName)做 CNAME 解析又都解析到 github.com,这样 ssh 在连接时就可以区别不同的账号了。
2.4 测试
ssh –T one.github.com
ssh –T two.github.com
ssh –T three.github.com
如果出现下图,则说明成功:
3. 配置本地项目
在账号1(ID1) 的 GitHub
仓库中 clone
一个项目到本地(自己新建一个项目然后 git init
也可以),在项目文件夹中右键打开 GitBash
,然后执行下面 的语句,设置账号和相应的项目关联:
git config user.name ID1
git config user.email E1
账号2和账号3的设置同理。
4. 修改远程仓库
由于我们的Host都做了修改,所以远程仓库也要做相应的更改。
账号1的某个项目下右键打开 GitBash
:
git remote rm origin # 先删掉远程仓库原来的origin
git remote add origin git@one.github.com:用户名1/用户名1.github.com.git # 重新将远程仓库命名为origin
# 下面这些操作就可以正常使用了
git add .
git commit -m "information"
git push -u origin master
账号2的某个项目下右键打开 GitBash
:
git remote rm origin # 先删掉远程仓库原来的origin
git remote add origin git@two.github.com:用户名2/用户名2.github.com.git # 重新将远程仓库命名为origin
账号3的某个项目下右键打开 GitBash
:
git remote rm origin # 先删掉远程仓库原来的origin
git remote add origin git@three.github.com:用户名3/用户名3.github.com.git # 重新将远程仓库命名为origin
经过上面四步后,我们就可以和之前一样使用git来管理我们的项目了。
完
写的有点仓促,如果有任何问题,欢迎和我联系。
四步实现在一台电脑上使用多个github账号的更多相关文章
- 如何在同一台电脑上使用两个github账户(亲测有效)
1 前言 由于有两个github账号,要在同一台电脑上同步代码,需要给每一个账号添加一个SSH public key,此时推送时git push origin,不知道是哪个账号的远程仓库名称,所以需要 ...
- Git学习笔记——从一台电脑上传文件到Github上
目标:从一台电脑上传文件到Github上 前提: 1.这里假定已在Github上创建了仓库,建立了仓库 2.已在这台电脑上安装了Git客户端 实验环境: 1.Windows 10 64位,已安装了Gi ...
- 如何在一个电脑上使用两个github账号
问题描述:公司电脑上默认使用的是公司的github账号,如果希望写一些代码放到个人的github账号上,就需要配置让一个电脑上可以使用两个github账号 原理:管理两个SSH key 1.生成两个S ...
- 一台电脑上同时使用两个github账户
需求:公司有github账号,自己有github账号,想在Git上同时使用,两者互不干扰. 思路:管理两个SHH key. 解决办法: 一.生成两个SSH key 为了举例方便,这里使用“one”和“ ...
- windows系统一台电脑先后添加多个git账号
概述 电脑上已经配置了github的ssh连接.现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号. 下面记录一下我配置的方法. 一.取消git全局配置 之前配置github的时候, ...
- git同时存在两个账号(在同一台电脑上)——三步完成
目录 1.首先是常规设置 2.同时添加两个账号 3.最后一步,配置~/.ssh/config文件 4.补充:有时因为设置了全局账号,因此需要清除 由于本人有连个git账号,个人github账号和公司g ...
- Python_架构、同一台电脑上两个py文件通信、两台电脑如何通信、几十台电脑如何通信、更多电脑之间的通信、库、端口号
1.架构 C/S架构(鼻祖) C:client 客户端 S:server 服务器 早期使用的一种架构,目前的各种app使用的就是这种架构,它的表现形式就是拥有专门的app. B/S架构(隶属于C/ ...
- git学习笔记:一台电脑上配置两个git账户
如何在一台电脑上配置两个git账户,现在云端仓库很多,有开源中国的 gitee.com 微软的 github.com 还有 gitlab.com 和 bitbucket.org 等等,下面是具体步骤 ...
- 简易搭建git仓库、关联远程和本地仓库方法。克隆仓库方法。同一台电脑上创建两个git ssh key方法。
一,在github上建仓库 react-js-antd-demo: 二:将远程仓库与本地仓库关联 git remote add origin git@github.com:begin256/react ...
随机推荐
- 基于 HTML5 WebGL 和 VR 技术的 3D 机房数据中心可视化
前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...
- 【Luogu P2146】软件包管理器
Luogu P2146 由于对于每一个软件包有且只有一个依赖的软件包,且依赖关系不存在环. 很显然这是一个树形的结构. 再看题目要求的操作,安装实际上对应的是覆盖根节点到当前节点的路径,卸载则是覆盖该 ...
- cropperjs实践及中文文档(自译)
cropperjs是一款非常强大却又简单的图片裁剪工具,它可以进行非常灵活的配置,支持手机端使用,支持包括IE9以上的现代浏览器.(关键是使用方法简单,几行代码就可以搞定) 实践效果图 如图,可以对指 ...
- C语言基础——进制转换 / 数据表示
第一部分:进制转换 二进制:由0~1构成,逢2进1 八进制:由0~7构成,逢8进1 十六进制:由0~9.A~F构成,逢16进1 两个基本概念 基数:n进制基数为n 123.4 = 1*10^2 + 2 ...
- P1548 棋盘问题
题目描述 设有一个N \times MN×M方格的棋盘(1≤N≤100,1≤M≤100)(1≤N≤100,1≤M≤100) 求出该棋盘中包含有多少个正方形.多少个长方形(不包括正方形). 例如:当 N ...
- Caused by: java.util.zip.ZipException: zip file is empty
1.问题描述:mybranch分支代码和master分支的代码一模一样,mybranch代码部署到服务器上没有任何问题,而master代码部署到服务器上运行不起来. 2.解决办法: (1)登陆服务器启 ...
- ansible roles 介绍和使用
目录 roles roles 介绍 创建role的步骤 role内个目录中可用的文件 案例 roles roles 介绍 ansible 自1.2版本引入的新特性,用于层次性.结构化地组织playbo ...
- c语言l博客作业08
问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...
- 纯CSS与HTML实现垂直时间轴
原创YouTube HTML源码 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- MySQL必知必会(数据分组,Group by和Having子句, Select子句的顺序)
SELECT vend_id, COUNT(*) AS num_prods FROM products #GROUP BY子句可以包含任意数目的列,多行NULL值将分为一组 GROUP BY vend ...