Windows Git 多用户多仓库配置
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.pub
和 id_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 多用户多仓库配置相关推荐
- git 多用户多仓库配置
ssh全称是Secure Shell,即安全Shell,是一种可以进行安全远程登录的协议,在Linux中以OpenSSH为代表,Windows中则有Putty作为实现.ssh的会话建立阶段类似TCP协 ...
- 一台电脑上配置多个git账号(gitee),向不同git线上仓库提交(命令行/TortoiseGit同时) 代码
目录 1.一台电脑上实现与多个git在线仓库提交代码的实际场景 2.安装git TortoiseGit 生成SSH key 和 git的.ssh目录 创建并配置config文件 2.1.首先必须先安装 ...
- msysgit - Windows Git安装配置
首先从google code下载最新的windows的git安装包msysgit,当时我下载的是Git-1.7.4-preview20110204.exe,然后就开始安装了,开始上图: 安装Msysg ...
- Windows Git下载及环境变量配置
一.Git下载 使用Windows电脑下载Git,官网下载基本不到20%就挂掉了,无法下载下来 https://git-scm.com/download/win(很难下载) 于是使用淘宝镜像进行下载, ...
- windows安装git和环境变量配置
转自 https://wuzhuti.cn/2385.html Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速 ...
- 使用Gitblit 搭建Windows Git服务器
使用Gitblit 搭建Windows Git服务器 整理使用Gitblit搭建Git服务器的步骤. 目录 使用Gitblit 搭建Windows Git服务器 目录 下载安装 配置 运行 客户端运行 ...
- Git 的安装及配置
Git 的安装及配置 Git 的下载 Git 的安装 配置 User 信息 user.name 和 user.email config 的三个作用域 配置 Git 的密钥 生成 密钥 配置 Gitee ...
- OpenSSH创建秘钥的4种格式以及git多秘钥配置
一. OpenSSH秘钥的4种格式 秘钥分公钥和私钥各有两个格式分别是: 1)标准私钥使用默认命名为id_rsa,格式如下: -----BEGIN RSA PRIVATE KEY----- MIIEo ...
- 解决git添加远程仓库提示出错信息:fatal: remote origin already exists
解决git添加远程仓库提示出错信息:fatal: remote origin already exists. 解决办法如下:1.先输入$ git remote rm origin2.再输入$ git ...
最新文章
- 在 Linux 上用 dust 代替 du更直观
- 23 年码农经历,33 次创业失败,38 岁身价百亿,快手创始人宿华的逆袭史!
- python小乌龟行走轨迹_旋转傻乌龟——几何变换实践|python爬虫|python入门|python教程...
- jsp程序带mysql数据库_【web开发】:JSP连接Mysql数据库(非常详细,代码一看就懂)...
- Apache开启Gzip压缩,LAMP网页压缩
- ca开头的车是什么牌子_动车与高铁的区别是什么?很少人知道!让我来告诉你吧...
- 【Python】青少年蓝桥杯_每日一题_10.27_日期差值的判断
- mysql 字段值为 a b c_数据的虚拟列-让数据库中的C字段等于a+b
- python if else格式_Python进阶之路 3.4.2 条件语句(if、else和elif)
- C语言之父丹尼斯·里奇
- linux台式机双屏幕怎么连接,台式机Linux/Unix多系统安装详细教程
- 百度开放平台-快递物流解决方案
- java字母排序_Java实现按照大小写字母顺序排序的方法
- 使用命令行生成文件目录树
- std::packaged_task 源码分析
- 怎么制作有趣的表情包
- 时间戳转时间精确到毫秒
- 巴比特独家 | 区块链入选新基建,这几件事你不得不知
- 采购订单审批与采购申请审批
- Android:ViewPager详细解释(异步网络负载图片,有图片缓存,)并与导航点
热门文章
- 使用TimerOne库
- FPGA mpsoc vitis SDK PMU-FW is not running, certain application may not be supported
- Flink standalone配置(血汗注意事项,哭唧唧)
- 贝叶斯 - 《贝叶斯统计》笔记
- python数独解题器_Python编写的超帅数独可视化解题器
- 上海电气集团数科总经理程艳:工业互联网赋能集团型企业转型发展
- 使用VIM是一种信仰
- 如何在word中输入函数
- FTPS“严重错误: gnutls_handshake: A TLS fatal alert has been received.”
- 《优柔有情人》读后感6000字