前言: 本文记述了我最近遇到的一个git相关问题到解决问题的过程
如有疑问可以留言/私信讨论
一.取消全局配置
当然,取消全局配置只是为了更加方便,全局设置就是你的每个仓库如果不单独配置用户信息
那么它的默认用户信息就是全局信息, 就算设置了全局配置,也是可以为某个仓库专门添加个
人信息,本文后面会提到
# 移除全局配置账户
git config --global --unset user.name
#查看全局用户名
git config --global user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global user.email
# 移除全局密码
git config --global --unset user.password
# 查看全局密码
git config --global user.password
二.创建多个ssh key
1.右键【Git Bash Here】进入【Git Bash】,输入以下命令生成user1的SSH KEY:
#-f 后面接的是ssh的保存地址, 当然文件名是可以自定义的,示例种的_user1后缀就是自定义添加
ssh-keygen -t rsa -f ~/.ssh/id_rsa_user1 -C "user1email@email.com"
如下截图:
创建的时候如果是用intelij系软件作为托管操作工具, 请不要设置密码, 不要设置密码, 不要设置密码
intelij会在通信的时候没有入口输入ssh的密码导致通信失败
按回车表示空密码
蓝色涂掉的部分是自定义的ssh文件名
图1
2.重复1步骤可以创建多个ssh
如图
我没有做自定义地址, 只是修改了文件名, config 有什么用下面会说到
ssh目录
三.配置ssh到github,gitlab等托管仓库
1,这一步骤各位看官应该都知道了,不过还是贴一下
这种仓库的设置入口都大同小异,没什么多说的啦,就放两张图, 然后各位自行针对去设置
第一步
第二步
验证ssh 连接
#git@ 后面接的是你配置ssh的域名, 本文以github举例 , -i后面接的是ssh key文件的地址 要精确到文件名
ssh -T git@github.com -i ~/.ssh/id_rsa_github
第三步
四.配置config文件
1,创建 config文件
找到ssh目录 , 打开config 文件,没有就创建一个, 没有后缀名,没有后缀名,没有后缀名,然后用记事本打开, 推荐editplus 或者notepad 等等
ssh目录
2,编辑config文件
# 配置user github
#主机别名
Host mygithub
#服务器真实地址
HostName github.com
#私钥文件路径
IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_github
#认证方式
PreferredAuthentications publickey
#用户名
User myName2
config
主机别名稍后再说, 如果没有多个ssh key 绑定的同一个代码托管仓库, 我个人推荐把主机别名和真实服务器地址设置成一样的(我这里设置的是一样的),原因后面会解释
五.代码库拉取以及配置
1,验证ssh
第三节3小节不是已经提过验证了嘛, 怎么又验证,各位看官别着急,往下看
#这次没有加i , 注意 ,这次的git@ 后面的域名此时不是网站的域名
ssh -T git@mygithub
在此时config里面的host别名就起到作用啦! ,这个时候就会自动分配ssh key和主机
2,拉取代码
拉取代码的方式也和以前的ssh拉取方式有点不一样
#以前的地址
git@github.com:shaomaicheng/kotlinx.coroutines-zh.git
#现在的地址
git@mygithub:shaomaicheng/kotlinx.coroutines-zh.git
也就是说在拉取操作的时候也需要做替换,用来保证git能识别到是哪个ssh 和 用户名
刚才提到过如果别名和主机地址一样的话, 那就不需要做替换啦 前提是没有多个ssh绑定同一个托管仓库
3,代码库更改配置,设置独立user
找到代码根目录的.git文件夹
找到config
用记事本打开config文件
结构
url 这个时候要和.ssh目录下config的配置绑定
user信息也需要为仓库单独设置哦(如果没有全局用户名的话)
本文整理自CSDN文章 : @Radioman-lhq配置多个Git账号(windows 10)