赞
踩
github、gitlab、gitee都是我们平时托管代码的平台,为了避免每次push代码时都要输入用户名和密码,通常会选择使用ssh协议,将公钥保存到托管平台上。
但在实际开发中,我们往往要将代码保存到多个不同的代码托管平台上。比如,公司的代码要托管到gitlab上,自己的代码托管到github、gitee上等等,这里每个托管平台都对应各自的git账户。
一般情况下,一台电脑只对应一个git账户,只能向一个平台托管代码。然而有时我们也需要在一台电脑上同时管理多个git账户,方便管理代码。
通过查询资料,总结出这篇文章,供大家参考。如有问题,请指出,谢谢~
查看Git所有配置
git config --list
删除全局配置项
git config --global --unset user.name
cd ~/.ssh
如果不存在 ~/.ssh 文件夹,则创建该文件夹:
mkdir ~/.ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "yourmail@xxx.com"
然后回车后按照提示即可生成密钥,默认的文件名是id_rsa。其中id_rsa为私钥
,id_rsa.pub为公钥
。为了方便区分不同的git账户,这里修改密钥文件名为:id_rsa_github
gitlab、gitee等都是同理,为便于区分,修改文件名即可。
小拓展:当使用https克隆项目的时候,每次都会要求输入账号密码,使用下面的方式可免去这一步(以gitee为例):
git clone https://账号:密码@gitee.com/xxx/xxx.git
SSH协议的原理就是在托管平台上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成密钥对,接下来需要把私钥添加到本地:
ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地
为了检验本地是否添加成功,可以使用 ssh-add -l
命令进行查看
以github为例,其他的托管平台类似:
复制 id_rsa_github.pub
文件中的内容,然后打开github网站,右上角点击头像,然后找到 Settings
并点击,然后找到 SSH keys and GPG keys
,点击New SSH Key
,将复制的内容粘贴到输入框内,然后点击添加按钮即可。
由于添加了多个平台的密钥文件,所以需要对这些密钥进行管理。在 .ssh
目录下新建一个 config
文件(注意这个config文件并不是.txt等文件,而是一个不带任何后缀名的文件):
执行命令:
touch ~/.ssh/config
即可在.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
现在,就可以测试是否连通了,执行命令:
ssh -T git@github.com // 使用托管平台域名
或
ssh -T git@github // 使用托管平台别名
如果出现下面这句话表示连接成功
Hi two! You've successfully authenticated, but GitHub does not provide shell access.
第一次登录会提示:
...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes,回车即可。该服务器的信息将会记录在 ~/.ssh/known_hosts
文件中。
然后输入密码即可登录。
默认登录端口号为22。如果想登录某一特定端口:
ssh user@hostname -p 22
可以通过一下命令查看git配置的用户名和邮箱
查看全局配置
git config --global user.name
git config --global user.email
查看本地配置(只能在git仓库中使用)
git config --local user.name
git config --local user.email
由于需要管理多个账户,所以仅仅使用这个全局值是不够的,需要在每个仓库中单独配置。可以在全局配置中设置的是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 '公司账号邮箱'
https://blog.csdn.net/qq_39234967/article/details/117286574
https://juejin.cn/post/7014421400261754911
https://juejin.cn/s/create%20ssh%20config%20file%20on%20mac
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。