当前位置:   article > 正文

在一台电脑上管理多个github、gitlab账号_一个电脑多个git账号 如何控制提交代码的git账号

一个电脑多个git账号 如何控制提交代码的git账号

场景分析

github、gitlab、gitee都是我们平时托管代码的平台,为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管平台上。
但在实际开发中,我们往往要将代码保存到多个不同的代码托管平台上。比如,公司的代码要托管到gitlab上,自己的代码托管到github、gitee上等等,这里每个托管平台都对应各自的git账户。
一般情况下,一台电脑只对应一个git账户,只能向一个平台托管代码。然而有时我们也需要在一台电脑上同时管理多个git账户,方便管理代码。
通过查询资料,总结出这篇文章,供大家参考。如有问题,请指出,谢谢~

配置步骤

1. 删除全局github账户

查看Git所有配置

git config --list
  • 1

删除全局配置项

git config --global --unset user.name
  • 1

2. 进入~/.ssh目录

cd ~/.ssh
  • 1

如果不存在 ~/.ssh 文件夹,则创建该文件夹:

mkdir ~/.ssh
  • 1

3. 生成对应账户密匙

3.1 根据账号邮箱生成githab的密钥,终端输入命令:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "yourmail@xxx.com"
  • 1

然后回车后按照提示即可生成密钥,默认的文件名是id_rsa。其中id_rsa为私钥id_rsa.pub为公钥。为了方便区分不同的git账户,这里修改密钥文件名为:id_rsa_github

gitlab、gitee等都是同理,为便于区分,修改文件名即可。

小拓展:当使用https克隆项目的时候,每次都会要求输入账号密码,使用下面的方式可免去这一步(以gitee为例):

git clone https://账号:密码@gitee.com/xxx/xxx.git
  • 1
3.2 将私钥添加到本地

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

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

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

4. git托管账户绑定ssh

以github为例,其他的托管平台类似:
复制 id_rsa_github.pub 文件中的内容,然后打开github网站,右上角点击头像,然后找到 Settings 并点击,然后找到 SSH keys and GPG keys ,点击New SSH Key,将复制的内容粘贴到输入框内,然后点击添加按钮即可。

5. 配置账户密匙管理文件

由于添加了多个平台的密钥文件,所以需要对这些密钥进行管理。在 .ssh 目录下新建一个 config 文件(注意这个config文件并不是.txt等文件,而是一个不带任何后缀名的文件):
执行命令:

touch ~/.ssh/config
  • 1

即可在.ssh下创建出config文件,可使用Vim、Sublime Text等软件打开此文件,然后添加如下内容:

# 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

6. 测试

现在,就可以测试是否连通了,执行命令:

ssh -T git@github.com  // 使用托管平台域名
或
ssh -T git@github // 使用托管平台别名
  • 1
  • 2
  • 3

如果出现下面这句话表示连接成功

 Hi two! You've successfully authenticated, but GitHub does not provide shell access.
  • 1

第一次登录会提示:

...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
  • 1
  • 2

输入yes,回车即可。该服务器的信息将会记录在 ~/.ssh/known_hosts 文件中。
然后输入密码即可登录。

默认登录端口号为22。如果想登录某一特定端口:

ssh user@hostname -p 22
  • 1

7. 管理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

参考资料

https://blog.csdn.net/qq_39234967/article/details/117286574
https://juejin.cn/post/7014421400261754911
https://juejin.cn/s/create%20ssh%20config%20file%20on%20mac

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

闽ICP备14008679号