Git传输协议、多用户配置

1、Git文件的四种传输协议

Git有四种不同的协议用来传输资料,分别是:
本地协议Local
HTTP协议
SSH协议(Secure Shell)
Git协议

1.1 本地协议

使用场景:本地协议常见的情况就是,远程仓库地址在同一主机上的其他目录。
该协议因为无法外网访问,故而在实践中并不常见,不做详细了解。
详情见Git的基础概念。Git文件的四种传输协议

1.2 HTTP协议

目前主流提供https地址,github、gitee、gitlab均支持。
如果你在 HTTP 上使用需授权的推送,管理凭证会比使用 SSH 密钥认证麻烦一些。 然而,你可以选择使用凭证 存储工具,比如 macOS 的 Keychain 或者 Windows 的凭证管理器

一般使用443端口;通过用户名/密码授权,可用性比较高;速度相较快点。

1.3 SSH协议

一般使用22端口;通过先在本地生成SSH密钥对再把公钥上传到服务器;速度相较慢点。

SSH协议不支持匿名访问 Git 仓库。 如果你使用 SSH,那么即便只是读取数据,使用者也必须通 过SSH 访问你的主机, 这使得 SSH 协议不利于开源的项目,毕竟人们可能只想把你的仓库克隆下来查看。 如果你只在公司网络使用,SSH 协议可能是你唯一要用到的协议。 如果你要同时提供匿名只读访问和 SSH 协议, 那么你除了为自己推送架设 SSH 服务以外, 还得架设一个可以让其他人访问的服务。

1.4 Git协议

缺乏授权机制。 把 Git 协议作为访问项目版本库的唯一手段是不可取的。 一般的做法里,会同时 提供 SSH 或者 HTTPS 协议的访问服务,只让少数几个开发者有推送(写)权限,其他人通过 git:// 访问只有 读权限。 Git 协议也许也是最难架设的。 它要求有自己的守护进程,这就要配置 xinetd、systemd 或者其他 的程序。 它还要求防火墙开放 9418 端口,但是企业防火墙一般不会开放这个非标准端口。 而大型的企业防火墙通常会封锁这个端口。

该协议在实际实践中使用也比较少,不做详细了解。
详情见Git的基础概念。Git文件的四种传输协议

2、Windows使用http协议

2.1 一般github、gitee这样开源托管的网站都可以使用http协议。
2.2 清除本地缓存的git账户和密码,托管在windows凭证中。
操作路径:控制面板->用户账户->凭据管理器->管理Windows凭证->Windows凭据,逐一清理。
Git传输协议、多用户配置_第1张图片
2.3再次clone项目,提示输入用户名和密码,正确输入后会再次保存到Windows凭证中。
Git传输协议、多用户配置_第2张图片

3、Windows多用户SSH配置

引用记录
Git HTTPS和SSH的区别
Git的基础概念。Git文件的四种传输协议
Windows设置多个git账号,进行多用户配置
10.6 Git 内部原理 - 传输协议
GitLab克隆代码将SSH切换为HTTPS方式

你可能感兴趣的:(git)