习惯更新软件版本,不知道从哪个版本的Git
开始,禁止从Http
仓库拉取代码
fatal: Unencrypted HTTP is not supported for GitLab. Ensure the repository remote URL is using HTTPS
背景介绍
环境:Windows 平台,一直用的都是小乌龟来操作git,配置秘钥也是通过小乌龟来处理的,之前弄过一次脚本,批量更新本地的仓库
前文链接:批量更新本地Git仓库
今天回家执行代码更新的时候,出现了前面的报错,仓库无法正常更新了,本想着Git
应该提供了配置,让我继续使用http
的协议更新仓库,找了一圈,也没翻到对应的配置项。
最简单的解决方案当然是切换成ssh
协议来更新仓库,公司配置的gitlab
短期内不会提供https
协议。
遗留问题
前面编写批量更新本地仓库脚本的是时候,本来想着使用ssh
的方式拉取仓库,也没细查是因为什么,通过小乌龟配置的git
配置信息并没有同步到 config 中,导致通过命令行执行
git pull #提示没有权限,无法正常更新仓库
通过命令检查秘钥配置也是正确的:ssh -T git@gitlab.yintech.net
如果你使用Git小乌龟(TortoiseGit)能够正常拉取代码,但在命令行中使用 git pull 命令时提示秘钥不对,这可能是因为Git小乌龟使用的是PuTTY的SSH密钥,而命令行使用的是OpenSSH的SSH密钥。
小乌龟的秘钥配置,不会从系统 .ssh 文件夹读取秘钥文件信息,而是通过界面仓库配置的时候,单独配置秘钥文件的路径,有用的小技巧:拉取的第一个仓库配置了秘钥即可让其余仓库都复用这个秘钥文件,PuTTY 加载秘钥以后,不会立即退出,而是启动了一个代理服务。
通过调整全局配置,不使用系统默认的ssh
配置,这样配置后,Git Bash 将使用 TortoisePlink 进行 SSH 操作。这种配置适用于使用 TortoiseGit 自带的 PuTTY 工具的情况。
git config --global core.sshCommand "'C:/Program Files/TortoiseGit/bin/TortoisePlink.exe' -batch -ssh"
上面配置的执行文件文件路径自行修改到对应的小乌龟路径,由于配置的完整路径,无需添加路径到系统环境变量中。