Jenkins拉取代码报错通过git配置浅克隆

在Linux中,使用git config命令配置depth为1意味着你想要为你的Git仓库设置一个浅克隆(shallow clone)。浅克隆会克隆仓库的历史记录中的一个极简版本,通常只包含最近的一次提交。这样做可以节省带宽和时间,特别是对于那些不需要完整历史记录的项目。

要配置深度为1的浅克隆,你可以使用以下命令:

git config core.shallow true
git fetch --depth 1
这两行命令首先设置当前仓库为浅克隆仓库,然后使用git fetch --depth 1命令来获取最近的一次提交。

如果你想要为所有新的Git仓库设置这个默认值,可以使用以下命令:

git config --global core.shallow true
git config --global fetch.recursiveDepth 1
这会将所有新克隆的Git仓库默认设置为浅克隆,只获取最近的一次提交。
这个操作能用来解决Jenkins创建新的项目时拉去代码报错

Receiving objects:  95% (3452/3626), 56.10 MiB | 55.98 MiB/s   
error: RPC failed; result=18, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2842)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2185)
	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:635)
	at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:997)
	... 11 more
ERROR: Error fetching remote repo 'origin'

通过网上搜到的方法无法解决
git config --global http.postBuffer 524288000
在服务器上直接采用git clone也无法正常clone下来也是上述报错
但是通过
git config --global http.postBuffer 524288000 --depth 1
这个可以正常拉取代码

depth 1 就是浅克隆 只克隆最新一次的提交,默认好像是10

jenkins无法直接配置git clone的语句 ,只能通过修改workspace里对应项目里的gitconfig
执行git fetch --depth 1就会获取最近一次的提交代码

posted @ 2024-09-30 17:36  开心burukku  阅读(37)  评论(0编辑  收藏  举报