git配置多账号
最近由于想把自己的项目提交到gitHub上,因为要同时维护个人和公司的项目,所以需要配置多个Git账号来进行操作。
注意:此教程是以已经安装Git的前提下进行的,例子使用的是Github和Gitlab,多用户配置为一个道理
一、移除Git全局配置
因为我之前只有全局的Git账户,所以需要先进行移除(如果你不知道自己是不是进行的全局配置的话,可以直接进行这一步,第一次设置的可以跳过这一步,也能进行这一步操作,影响不大)。
1)打开CMD(win+R 输入cmd回车)输入下面的命令查看git全局配置
git config --list
查看你自己的配置
2)移除全局配置的name、email、password等配置(如果没有配置这些,执行命令也不会出错)
#移除全局配置账户 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
二、生成并在GitHub、GitLab上部署SSH KEY
注意: 生成前请先确认下图的目录中是否已经有生成的ssh密钥,如果有请先删除
注意:以上文件夹内容目前忽略,当前只做展示.ssh文件夹在生成第一个账号会自动生成。
具体路径根据自己的电脑有所不同,大体是这样。
1)生成并在GitHub上部署SSH KEY
1.在CMD中输入下面的命令生成第一个账号的ssh key:
# user1@email.com替换为你的Github用户名
ssh-keygen -t rsa -C "user1@email.com"
注意:生成的时候在(如图)箭头这步输入名称以便区分。
第一对文件生成成功后,在重复上面步骤(注意:第二次生成的时候需要cmd进入.ssh目录,否则生成的文件不在这个目录中,生成的文件会在命令输入时的当前目录生成)
以上步骤完成后
进入.ssh目录查看,生成的id_rsa私钥和id_rsa.pub公钥,并用编辑器打开公钥。(名称为你自己命名的为准)
使用生成密钥的账号登录GitHub,进入【settings】-【SSH and GPG keys】,如下截图:
点击【New SSH key】按钮,进入新建SSH key页面,进入如下图设置:
2个账户做同样的操作(文件内容选取对应的内容)
三、配置config文件
1)在.ssh目录下创建一个config文本文件(没有后缀),每个账号配置一个Host节点。主要配置项说明:
Host 主机别名(域名地址,根据公司给的地址或者你自己的地址)
HostName 服务器真实地址(域名也可以)
IdentityFile 私钥文件路径
PreferredAuthentications 认证方式
User 用户名
配置内容: IdentityFile C:\Users\lingh.ssh\id_rsa 私钥(注意不是.pub文件) 此地址改为你自己电脑上文件地址
# 别名可以随意写 服务器真实地址是ip就是ip 是域名就是域名
# IdentityFile C:\Users\lingh\.ssh\id_rsa 此地址改为你自己电脑上文件地址
# 配置Github账号
Host user1.github.com
HostName github.com
IdentityFile C:\Users\lingh\.ssh\id_rsa
PreferredAuthentications publickey
User user1
# 配置GitLab 如上
Host xxxx
HostName xx.xx.xx.xx
IdentityFile C:\Users\lingh\.ssh\id_rsa2
PreferredAuthentications publickey
User user2
四、配置账号和邮箱
注意: 需要为各仓库单独配置用户名和邮箱
进入项目目录,打开终端输入以下命令进行绑定(每个仓库都需配置):
#一定要配置正确的用户
git config user.name "user1"
git config user.email "user1@email.com"
#绑定完成可以输入下面的命令进行确认
#查看当前仓库用户名
git config user.name
# 查看当前仓库邮箱
git config user.email
# 查看当前仓库密码git config user.password