习惯更新软件版本,不知道从哪个版本的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"

上面配置的执行文件文件路径自行修改到对应的小乌龟路径,由于配置的完整路径,无需添加路径到系统环境变量中。