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

从GitHub拉取代码构建时出现index-pack失败错误求助

解决Jenkins拉取GitHub仓库时的index-pack died of signal 15错误

先看一下你遇到的具体错误信息:

error: index-pack died of signal 15
fatal: index-pack failed
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2002)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1721)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:405)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:886)
... 11 more
ERROR: Error fetching remote repo 'origin'
Finished: FAILURE

这个错误本质是index-pack进程被系统发的SIGTERM(Signal 15)信号强制终止了,大概率是超时、内存不足或者网络问题导致的,给你几个实用的解决办法:

1. 调大Git拉取的超时时间

这是最常见的修复方向,当仓库过大或者网络偏慢时,默认超时时间不够用:

  • 打开你的Jenkins任务配置,找到Git SCM模块,点击「Advanced」展开高级设置;
  • 找到「Timeout (in minutes)」选项,把默认的10分钟左右的数值改成更大的,比如30或60,具体根据你的仓库大小和网络情况调整;
  • 要是想全局生效,可以进入「Manage Jenkins → Global Tool Configuration → Git」,添加「Advanced clone behaviors」来设置全局超时时间。

2. 给Jenkins分配更多内存

如果Jenkins所在机器内存不足,index-pack处理大仓库数据时容易被系统杀掉:

  • 找到Jenkins的启动配置文件(Windows是jenkins.xml,Linux是jenkins.sh);
  • 修改JAVA_OPTS参数,增加堆内存,比如改成:
    JAVA_OPTS="-Xmx4g -Xms2g -XX:MaxMetaspaceSize=512m"
    
    数值根据你的机器配置调整,确保有足够内存支撑Git进程运行;
  • 重启Jenkins让配置生效。

3. 使用浅克隆减少拉取数据量

如果你的构建不需要完整的Git历史记录,浅克隆能大幅缩短拉取时间:

  • 在Git SCM的高级设置里,勾选「Shallow clone」;
  • 设置「Shallow clone depth」为1,这样只拉取最新的一次提交,数据量会小很多;
  • 注意:如果后续需要历史记录相关操作(比如版本对比),这个方法可能不适用。

4. 检查网络连接稳定性

确保Jenkins服务器和GitHub之间的网络没有问题:

  • 登录到Jenkins服务器,手动执行git fetch origin或者git clone <你的仓库地址>命令,测试是否能正常完成;
  • 如果手动执行也失败,那大概率是网络问题,需要排查防火墙、代理或者网络带宽。

5. 清理本地Git缓存

有时候本地的Git缓存损坏也会导致拉取失败:

  • 找到Jenkins任务的工作目录(一般在Jenkins/workspace/你的任务名下);
  • 删除.git文件夹,然后重新触发构建,让Jenkins重新克隆仓库。

内容的提问来源于stack exchange,提问作者Deepesh Singh Pawar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:04:47