当前位置:   article > 正文

在一台电脑上配置多个github和gitlab账号_pycharm可以配置多个git账户吗

pycharm可以配置多个git账户吗

一、应用场景:

我们经常将代码托管到github、gitlab这样的网站上。为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管网站上。在实际开发中,往往要将代码托管到多个不同的网站上。比如,公司的代码需要托管到coding上,自己的开源代码托管到github上,私有代码托管到gitlab上等等,每个托管网站都对应一个git账户。默认情况下,一台电脑的git只对应一个账户,只能往一个网站push代码,非常不便。这篇博客将介绍如何在一个git终端中配置多个账户,同时管理多个托管网站的代码。

二、配置步骤:

1、对需要配置的账号生成密钥

首先,进入~/.ssh目录

cd ~/.ssh
  • 1

然后,根据账号邮箱生成密钥,例如我的github邮箱是xx@163.com

ssh-keygen -t rsa -C "xx@163.com"
  • 1

输入完成回车后按照提示即可生成密钥,默认的文件名是id_rsa。其中id_rsa为私钥,id_rsa.pub为公钥。为了方便区分,我这里修改密钥命名为id_rsa_github。

同样,对于gitlab上的账户,我是用另一个邮箱注册的,按照同样的步骤生成id_rsa_gitlab的密钥对。接下来的步骤,除额外说明外,两个账户的操作完全相同。

2、将私钥添加到本地
SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成密钥对,接下来需要把私钥添加到本地:

ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地
  • 1
  • 2

为了检验本地是否添加成功,可以使用ssh-add -l命令进行查看

3、对本地密钥进行配置
由于添加了多个密钥文件,所以需要对这多个密钥进行管理。在.ssh目录下新建一个config文件:

vi ~/.ssh/config

// github的配置
Host github // 网站的别名,随意取
HostName github.com // 托管网站的域名
User xx // github上的用户名
IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件

// gitlab的配置相同
Host gitlab
HostName gitlab.com
User xx
IdentityFile ~/.ssh/id_rsa_gitlab
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4、将公钥添加到托管网站
以github为例,先在本地复制公钥,然后登陆github,点击右上角头像选择settings,在打开的页面中选择SSH and GPG keys.
在这里插入图片描述
在打开的页面的Key输入框中粘贴刚刚复制的公钥,title的名字自己随便去,然后点击下方的Add SSH key按钮:
在这里插入图片描述
至此,托管网站的公钥添加完成。总结来说,就是针对每个托管网站分别生成一对密钥,然后分别添加到本地和托管网站.

这时候,可以测试一下配置是否成功,测试命令使用别名。例如,对于GitHub,本来应该使用的测试命令是:

ssh -T git@github.com
  • 1

在config文件中,给GitHub网站配置的别名就是github,所以直接使用别名,就是

ssh -T git@github
  • 1

5、管理git的用户名和邮箱
可以通过一下命令查看git配置的用户名和邮箱

查看全局配置
git config --global user.name
git config --global user.email

查看本地配置(只能在git仓库中使用)
git config --local user.name
git config --local user.email
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。可以在全局配置中设置的是github用户名和邮箱,在gitlab项目中设置gitlab的用户名和密码。

全局配置
git config --global user.name  '个人github账号名' 
git config --global user.email  '个人github账号邮箱'

本地配置
git config --local user.name  'gitlab账号名'   
git config --local user.email  '公司账号邮箱' 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、参考资料

1、https://segmentfault.com/a/1190000016269686
2、https://kangzhiheng.top/post/11-more-ssh-in-one-laptop/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/438642
推荐阅读
相关标签
  

闽ICP备14008679号