refer from :
https://blog.csdn.net/yuanlaijike/article/details/95650625
https://www.jianshu.com/p/9317a927e844

Windows下Git多用户多仓库配置

文章目录

  • Windows下Git多用户多仓库配置
  • 一、引言
  • 二、配置多用户
    • 2.1 清楚全局配置
    • 2.2 生成ssh密钥对
      • 2.3 添加 SSH Keys
      • 2.4 添加私钥
      • 2.5 管理密钥
      • 2.6 仓库配置

一、引言

一般来说,安装好 git 后,我们都会配置一个全局的 config 信息,就像这样:

git config --global user.name "jzy" // 配置全局用户名,如 Github 上注册的用户名
git config --global user.email "jzy@mail.com" // 配置全局邮箱,如 Github 上配置的邮箱

但是可能会碰到需要在一台电脑上配置多个用户信息的需求。此时就不能够用一个全局配置搞定一切了。

比如公司的电脑配置的是私有的 gitlab 仓库,而我自己的项目存储在 github 和gitee上。它们不仅仓库地址不一样,仓库的用户名和邮箱都不一样。

二、配置多用户

本文将配置分别是 github 以及 gitee 上的两个用户,并分别在它们所属的项目上进行 git 操作,这差不多就是配置多用户的大部分操作了。用的是同一个邮箱,不同邮箱也是同样的操作。

github gitee
2410723051@qq.com 2410723051@qq.com
dengjzy jzy

2.1 清楚全局配置

在正式配置之前,我们先得把全局配置给清除掉(如果你配置过的话),执行命令:

git config --global --list

这会列出所有已经配置的全局配置,如果你发现其中有 user.name 和 user.email 信息,请执行以下命令将其清除掉:

git config --global --unset user.name
git config --global --unset user.email

2.2 生成ssh密钥对

在windows中钥对的保存位置默认在C:\Users\Username.ssh 目录下,我们先清理下这个目录中已存在的钥对信息,即删除其中的 id_rsa、id_rsa.pub 之类的公钥和密钥文件。
首先我们开始生成 github 上的仓库钥对,通过 -C 参数填写 github 的邮箱:

ssh-keygen -t rsa -C “2410723051@qq.com”

按下 ENTER 键后,会有如下提示:

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\24107/.ssh/id_rsa):

在这里输入公钥的名字,默认情况是叫 id_rsa,为了和后面的 gitee 配置区分,这里输入 id_rsa_github。输入完毕后,一路回车,钥对就生成完毕了。

下面开始生成 gitee 上的仓库钥对,步骤和上面一样:

ssh-keygen -t rsa -C “2410723051@qq.com”

生成的公钥名就叫做:id_rsa_gitee

2.3 添加 SSH Keys

id_rsa_github.pubid_rsa_gitlee.pub 内容分别添加到 github 和 gitee 的 SSH Keys 中,网上随便看下就行了,这里不展开了。

2.4 添加私钥

在上一步中,我们已经将公钥添加到了 github 或者 gitee 服务器上,我们还需要将私钥添加到本地中,不然无法使用。添加命令也十分简单,如下:

打开git bash

eval $(ssh-agent -s)
ssh-add /c/Users/24107/.ssh/id_rsa_github
ssh-add /c/Users/24107/.ssh/id_rsa_gitee
如果出现
$ ssh-add /c/Users/24107/.ssh/id_rsa_gitee
Could not open a connection to your authentication agent.
则
1.  ssh-agent bash --login -i
2.  ssh-add /c/Users/24107/.ssh/id_rsa_gitee

添加完毕后,可以通过执行 ssh-add -l 验证下,如果都能显示出来,就 OK 了。

ssh-add -l
2048 SHA256:DvefdRsmIxrE/pafweagragaergrasdasdapVPYgm5M /c/Users/24107/.ssh/id_rsa_github (RSA)
2048 SHA256:2TYergrasdasda+A1hpB81sfWluRHd0FbsfNhxbxRdY /c/Users/24107/.ssh/id_rsa_gitee (RSA)

2.5 管理密钥

通过以上步骤,公钥、密钥分别被添加到 git 服务器和本地了。下面我们需要在本地创建一个密钥配置文件,通过该文件,实现根据仓库的 remote 链接地址自动选择合适的私钥。

编辑 ~/.ssh 目录下的 config 文件,如果没有,请创建。

Host gitee
HostName gitee.com
User jzy
IdentityFile /C/Users/24107/.ssh/id_rsa_giteeHost github
HostName github.com
User dengjzy
IdentityFile /C/Users/24107/.ssh/id_rsa_github

该文件分为多个用户配置,每个用户配置包含以下几个配置项:

  • Host:仓库网站的别名,随意取
  • HostName:仓库网站的域名(PS:IP 地址应该也可以)
  • User:仓库网站上的用户名
  • IdentityFile:私钥的绝对路径

可以用 ssh -T 命令检测下配置的 Host 是否是连通的:

ssh -T gitee
Hi jzy! You've successfully authenticated, but GITEE.COM does not provide shell access.

2.6 仓库配置

完成以上配置后,其实你已经基本完成了所有配置。分别进入附属于 github 和 gitee 的仓库,此时都可以进行 git 操作了。但是别急,如果你此时提交仓库修改后,你会发现提交的用户名变成了你的系统主机名。

这是因为 git 的配置分为三级别,System —> Global —>Local。System 即系统级别,Global 为配置的全局,Local 为仓库级别,优先级是 Local > Global > System。

因为我们并没有给仓库配置用户名,又在一开始清除了全局的用户名,因此此时你提交的话,就会使用 System 级别的用户名,也就是你的系统主机名了。

因此我们需要为每个仓库单独配置用户名信息,假设我们要配置 github 的某个仓库,进入该仓库后,执行:

git config --local user.name "jzy"
git config --local user.email "2410723051@qq.com"

执行完毕后,通过以下命令查看本仓库的所有配置信息:

git config --local --list

至此你已经配置好了 Local 级别的配置了,此时提交该仓库的代码,提交用户名就是你设置的 Local 级别的用户名了。

Windows Git 多用户多仓库配置相关推荐

  1. git 多用户多仓库配置

    ssh全称是Secure Shell,即安全Shell,是一种可以进行安全远程登录的协议,在Linux中以OpenSSH为代表,Windows中则有Putty作为实现.ssh的会话建立阶段类似TCP协 ...

  2. 一台电脑上配置多个git账号(gitee),向不同git线上仓库提交(命令行/TortoiseGit同时) 代码

    目录 1.一台电脑上实现与多个git在线仓库提交代码的实际场景 2.安装git TortoiseGit 生成SSH key 和 git的.ssh目录 创建并配置config文件 2.1.首先必须先安装 ...

  3. msysgit - Windows Git安装配置

    首先从google code下载最新的windows的git安装包msysgit,当时我下载的是Git-1.7.4-preview20110204.exe,然后就开始安装了,开始上图: 安装Msysg ...

  4. Windows Git下载及环境变量配置

    一.Git下载 使用Windows电脑下载Git,官网下载基本不到20%就挂掉了,无法下载下来 https://git-scm.com/download/win(很难下载) 于是使用淘宝镜像进行下载, ...

  5. windows安装git和环境变量配置

    转自 https://wuzhuti.cn/2385.html Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速 ...

  6. 使用Gitblit 搭建Windows Git服务器

    使用Gitblit 搭建Windows Git服务器 整理使用Gitblit搭建Git服务器的步骤. 目录 使用Gitblit 搭建Windows Git服务器 目录 下载安装 配置 运行 客户端运行 ...

  7. Git 的安装及配置

    Git 的安装及配置 Git 的下载 Git 的安装 配置 User 信息 user.name 和 user.email config 的三个作用域 配置 Git 的密钥 生成 密钥 配置 Gitee ...

  8. OpenSSH创建秘钥的4种格式以及git多秘钥配置

    一. OpenSSH秘钥的4种格式 秘钥分公钥和私钥各有两个格式分别是: 1)标准私钥使用默认命名为id_rsa,格式如下: -----BEGIN RSA PRIVATE KEY----- MIIEo ...

  9. 解决git添加远程仓库提示出错信息:fatal: remote origin already exists

    解决git添加远程仓库提示出错信息:fatal: remote origin already exists. 解决办法如下:1.先输入$ git remote rm origin2.再输入$ git ...

最新文章

  1. 在 Linux 上用 dust 代替 du更直观
  2. 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
  3. python小乌龟行走轨迹_旋转傻乌龟——几何变换实践|python爬虫|python入门|python教程...
  4. jsp程序带mysql数据库_【web开发】:JSP连接Mysql数据库(非常详细,代码一看就懂)...
  5. Apache开启Gzip压缩,LAMP网页压缩
  6. ca开头的车是什么牌子_动车与高铁的区别是什么?很少人知道!让我来告诉你吧...
  7. 【Python】青少年蓝桥杯_每日一题_10.27_日期差值的判断
  8. mysql 字段值为 a b c_数据的虚拟列-让数据库中的C字段等于a+b
  9. python if else格式_Python进阶之路 3.4.2 条件语句(if、else和elif)
  10. C语言之父丹尼斯·里奇
  11. linux台式机双屏幕怎么连接,台式机Linux/Unix多系统安装详细教程
  12. 百度开放平台-快递物流解决方案
  13. java字母排序_Java实现按照大小写字母顺序排序的方法
  14. 使用命令行生成文件目录树
  15. std::packaged_task 源码分析
  16. 怎么制作有趣的表情包
  17. 时间戳转时间精确到毫秒
  18. 巴比特独家 | 区块链入选新基建,这几件事你不得不知
  19. 采购订单审批与采购申请审批
  20. Android:ViewPager详细解释(异步网络负载图片,有图片缓存,)并与导航点

热门文章

  1. 使用TimerOne库
  2. FPGA mpsoc vitis SDK PMU-FW is not running, certain application may not be supported
  3. Flink standalone配置(血汗注意事项,哭唧唧)
  4. 贝叶斯 - 《贝叶斯统计》笔记
  5. python数独解题器_Python编写的超帅数独可视化解题器
  6. 上海电气集团数科总经理程艳:工业互联网赋能集团型企业转型发展
  7. 使用VIM是一种信仰
  8. 如何在word中输入函数
  9. FTPS“严重错误: gnutls_handshake: A TLS fatal alert has been received.”
  10. 《优柔有情人》读后感6000字