同一台设备如何使用两个GitHub帐号?

96
我叫阿水
0.1 2016.08.26 20:36* 字数 1055

Paste_Image.png

假设你跟我一样有在同台电脑配置两个Git帐号的需求,但同时也不太清楚怎么操作,也许本文章可以帮助到你。

文章所讲的是在Mac系统下,Windows下的朋友也可以参考,整体流程都一样,只不过某些文件的路径不同系统下有所不同而已。

前言

这几天突然想要积极点、活跃点的混迹GitHub -. - 但又看了下之前的git帐号,昵称起的太不合心意了,并且这个帐号已经添加到公司的git teams里面,想去修改昵称怕又搞出什么幺蛾子,一种申请一个新的私人帐号想法油然而生。
于是乎,趁着下班空闲时间,开干!

配置SSH Key

到这里,假设你手上已有两个Git帐号,一个原先设备使用着,另一个是新申请的,这里以我自己的两个帐号为例子来进行讲解

canny09@qq.com 这是旧的Git帐号

listen_kb@163.com 这是新的Git帐号

你肯定知道,使用这个命令 ssh-keygen -t rsa -C “你的邮箱”来生成SSH Key,但假设你之前是通过百度按着教程步骤来的,通常教程里都会说,输入这个命令之后,连敲3次回车就好了,出现下面这样,就表示SSH Key成功了

Paste_Image.png

但这次你用次命令该命令来生成SSH Key的时候,在Enter file in which to save the key (/Users/kiben/.ssh/id_rsa):这里按第一个回车的时候,不要按回车,因为按了回车,就会生成默认的id_rsaid_rsa.pub两个文件,也因此会覆盖你原先旧帐号在/Users/你的电脑用户名/.ssh/文件夹的两个同名文件,也导致你原先帐号的SSH Key失效。 因此,在Terminal输入你新帐号的SSH Key文件的名称,就像这样:

Paste_Image.png

剩下的也是敲两个回车就行了,我们不给改文件设置密码,成功之后,你会在上面提到的.ssh文件下看到id_rsa_yiomiddid_rsa_yiomidd.pub两个文件,如果你找不到.ssh文件夹,可以用以下命令:

显示 Mac 隐藏文件的命令
defaults write com.apple.finder AppleShowAllFiles -bool true

然后再输入一句:重启Finder
killall Finder

隐藏 Mac 隐藏文件的命令
defaults write com.apple.finder AppleShowAllFiles -bool false

接着就是在Terminal使用vim id_rsa_yiomidd.pub命令打开公钥文件,然后复制里面的所有字符,接着到GitHub 帐号设置那里添加SSH Key,这步骤你肯定也很熟练了,我就不多废话了。

配置config文件

回到Terminal,接着使用vi config创建config文件,然后在文件里复制以下内容:

#这里是原先使用的帐号(canny09@qq.com)
Host github.com
HostName github.com 
User git 
IdentityFile ~/.ssh/id_rsa

#这里是新的帐号(listen_kb@163.com)
Host YioMidd
HostName github.com 
User git 
IdentityFile ~/.ssh/id_rsa_yiomidd

解释下每一行的作用

Host设置别名,原先使用的帐号,你使用默认的就好;新的帐号就需要重新命名,名称随便你,好记就行;

HostName 默认就是github.com 不需要去改动

User 用户,也是默认就好

IdentityFile 这个就是你帐号对应的公钥文件了,路径是这样固定的,唯一要改的就是末尾的文件名id_rsa_yiomidd改成你自己的

然后保存退出

这里要注意并记住,使用旧帐号的时候,之前怎么用还是怎样;在使用新帐号的时候,比如在克隆仓库的时候,本来是这样的
git clone git@github.com:YioMidd/projectName.git,但现在要改为git clone YioMidd:YioMidd/projectName.git

到这里,你可能就觉得已经完成了,可以愉快的使用新帐号了,不过你会发现,使用的时候,不成功,Terminal报错,原因是,你这台设备现在还是使用着原先的旧帐号,所以你要切换帐号。这也是比较烦的

控制台cd ..会到根目录,vi .gitconfig文件,修改里面的NameEmail

Paste_Image.png

对应你的git帐号昵称跟注册的邮箱,然后保存退出就行了。
当然,如果你对git 命令比较熟悉的话,你也可以使用以下命令来进行切换:

git config --global user.name "你的昵称"
git config --global user.email "你的邮箱地址"

最后还有一种方法,也是最方便的。如果你跟我一样,使用SourceTree来进行Git仓库操作的,在偏好设置里设置一下就好啦


Paste_Image.png

到此,就可以愉快地切换工作跟私人的Git帐号了。

感谢阅读,如有纰漏或错误,请批评指正!!

随笔
Web note ad 1