在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就会获取最近一次的提交代码