You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Fork仓库流水线报错:fatal: mismatched algorithms: client sha1; server sha256

解决Git SHA算法不匹配导致的CI流水线失败问题

问题场景

主仓库基于python:3.11镜像的Python单元测试CI流水线运行正常,但在Fork仓库执行时,拉取代码阶段报错:

fatal: mismatched algorithms: client sha1; server sha256

已确认主仓库与Fork仓库的本地Git、仓库及所有提交均使用SHA256算法。

解决方案

1. 检查镜像内Git版本

python:3.11基础镜像自带的Git版本可能偏旧,旧版本Git默认使用仅支持SHA1的Git协议v1,导致与SHA256仓库交互失败。可在流水线中先执行命令确认版本:

git --version

2. 强制Git使用SHA256及协议v2

在CI流水线的before_script阶段添加以下配置,强制Git启用SHA256支持和协议v2:

git config --global protocol.version 2
git config --global core.repositoryFormatVersion 1
git config --global objectFormat sha256

3. 调整CI拉取参数

如果使用GitLab CI,可在.gitlab-ci.yml中添加全局变量,指定拉取时使用协议v2:

variables:
  GIT_FETCH_EXTRA_FLAGS: "--protocol=2"

4. 验证仓库哈希配置

在流水线中添加以下命令,确认本地仓库和远程仓库的哈希类型是否一致:

# 查看远程仓库地址
git ls-remote --get-url origin
# 确认本地仓库当前提交的哈希类型
git cat-file -t HEAD

原因说明

尽管仓库本身配置为SHA256,但旧版本Git在与远程仓库通信时默认使用协议v1,该协议仅支持SHA1哈希验证,因此会与使用SHA256的Fork仓库发生算法不匹配冲突,启用协议v2即可解决该问题。

内容的提问来源于stack exchange,提问作者HumpbackWhale194

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:01:02