在一个电脑上设置两个git账户

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/one_girl/article/details/86238676

如何比较方便的在同一台电脑上登录多个 Git 账户
这里不仅限于 Github, 而是基于 Git 版本工具的任何服务器。

背景
公司是gitLab,自己是github账号 想在同一台电脑上使用,两者互不干扰。。

准备

github有两种登录方式
一个是直接的账户密码方式,另外一个是用过 SSH 证书登录。
在这里插入图片描述

在这里插入图片描述
第一种是使用账号密码登录,使用下面命令的时候需要输入用户名和密码就可以了,提交代码的时候也需要输入,配置简单 但是频繁使用的话 就比较麻烦了

git clone https://github.com/azhen1/lerna-demo.git

第二种就是这次配置两个账号要使用的方式
在 Github 的后台,可以看到一个叫做 SSH and GPG keys 的选项:

在这里插入图片描述
这里面列出了当前账号绑定的 SSH Key。 每一个 key 对应一台独立的设备。
绑定SSH Key的步骤如下:

  1. 检查电脑是否已有ssh key
$ cd ~/.ssh
$ ls

在这里插入图片描述
默认应该是没有的

  1. 创建一个ssh key
$ ssh-keygen -t rsa -C "[email protected]"

运行上面那条命令后会让输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/azhen/.ssh/id_rsa): /Users/azhen/.ssh/id_rsa_user2

你可以不输入文件名,使用默认文件名,那么就会生成 id_rsa 和 id_rsa.pub 两个全局默认的秘钥文件,前者为私钥,后者为公钥。
当然我们有两个代码仓库,所以最好写上文件名,如id_rsa(公司)或id_rsa_user2(个人). 这样ssh目录下会生成id_rsa.pub和id_rsa_user2.pub两个文件

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码)。也可以直接按回车键,那么push的时候就不需要输入密码,直接提交到github上了,如:

Enter passphrase (empty for no passphrase): 
# Enter same passphrase again:

当你看到下面这段代码的时候,那就说明,SSH key 已经创建成功,只需要添加到github的SSH key上就可以了。

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 70:e2:e5:25:06:6c:0b:1a:b1:73:69:18:3a:b4:f4:a2 [email protected]
  1. 添加你的 SSH key 到 github上面去
cd ~/.ssh
vi id_rsa.pub

登录你的github账号,从右上角的设置( Settings )进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。
点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。当然,上面的 Title 所对应的输入框你也可以输入一个该 SSH key 显示在 github 上的一个别名。

创建config文件

设置好两个ssh key之后就要配置下它们的使用场景

$ touch config

此时会出现空的config文件,然后添加如下内容:

# Default gitLab user
Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa

# second user
Host github.azhen1
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_user2

这样,在我们创建的 config 文件中,配置了两条记录。 分别指向两个 SSH key。 HostName是原本的域名 Host是与HostName对应的自定义的名字。

引用 config 文件中的配置项:
在项目的下载地址中,有一个 Use SSH 的链接,点击它之后,就可以得到 SSH 格式的地址:
在这里插入图片描述
比如我们图中的 [email protected]:azhen1/lerna-demo.git。 我们需要对它稍作加工,把域名部分替换成我们在 config 中配置的 Host: git@github-azhen1:azhen1/lerna-demo.git。

仔细看一下,看出前后两者有什么不同了吧,前面直接用的域名,而后面这个用的是我们在 ~/.ssh/config中配置的内容。 这样在访问的时候,系统就自动能够找到相应的密钥了。可以运行 git clone 命令

git clone git@github-azhen1:azhen1/lerna-demo.git

这样本地仓库就和对应的密钥建立起了联系。 以后的操作中,都会自动使用这个 SSH key 来访问 Github 远程仓库了。 如果想同时在另外一个本地仓库使用其他 Github 账户,只需要在 ~/.ssh/config文件中配置好相应的 SSH key 和对应的 Host,就可以了。

参考
http://www.sohu.com/a/200521333_487516
https://www.cnblogs.com/xjnotxj/p/5845574.html
https://www.jianshu.com/p/6ac28fa5e843

猜你喜欢

转载自blog.csdn.net/one_girl/article/details/86238676