likes
comments
collection
share

window下git多账户管理

作者站长头像
站长
· 阅读数 3

前言

一般情况下,我们都是一台电脑配置一个Git账号,使用如下命令:

git config --global user.name "your name"
git config --global user.email "your email"

我的电脑上已经配置GitHub的,现需要配置公司的 GitLab 账号(或者其他类型的 Git 账号)。

配置多个git账号

清除原有全局设置

该步骤非必须的,如果你没有设置过全局用户名、email 等信息,则不用清除原有设置

  • 取消全局设置
git config --global --unset user.name
git config --global --unset user.email

生成ssh密钥

  • 生成github 对应账号的ssh密钥
ssh-keygen -t rsa -C "your_github_email@xxx.com"
  • 执行完上面的命令后,命令行会弹出以下提示
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa):
  • 在此处修改id_rsa文件名(注意:不要覆盖之前的rsa密钥)
/c/Users/admin/.ssh/id_rsa_test
  • 之后就一直回车即可 window下git多账户管理
  • 文件夹ssh下就生成了 id_rsa_test 和id_rsa_test.pub window下git多账户管理
  • 最后将id_rsa_test.pub里的内容粘贴到github服务器的指定位置上 window下git多账户管理

以上只是一个账号ssh的生成过程,其他账号同上

修改config文件(如果没有就在.ssh 文件夹下创建一个)

# The git info for githunb
Host test                                            #服务器别名
HostName github.com                                  #主机地址
User git                                             #可以写邮箱名称,也可以写 git 账号
IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_test     #对应github 密钥路径,注意不要写错
IdentitiesOnly yes                                   #配置yes,表示只使用这里的key,防止使用默认的(可忽略)
PreferredAuthentications publickey                   #强制验证方式,这里使用的是publickey 

# The git info for company
Host company                                         #服务器别名
HostName  gitLab.com                                 #公司gitLab 地址
User git                                             #可以写邮箱名称,也可以写 git 账号
IdentityFile C:\\Users\\admin\\.ssh\\id_rsa_company  #对应公司 gitLab 账号密钥路径,注意不要写错
IdentitiesOnly yes
PreferredAuthentications publickey 

测试

  • 可以利用ssh -T git@test,测试github账号是否成功。 window下git多账户管理 window下git多账户管理
  • 这样就配置完成了

使用

  • git clone
git clone git@test:worker/test.git
  • 通过config ,指定不同的 git 账号对应不同的 ssh key
#全局设置账号
git config --global user.name "your name"
git config --global user.email "your email"

#在项目中设置账号--->需先进入到clone下的项目文件下
git config --local user.name "your name"
git config --local user.email "your email"