我们在Windows Server 2012上的Jenkins安装上遇到了缓慢的git fetch命令。我已经尝试了这些线程中提到的所有解决方案:
Hudson git commands are *incredibly* slow(使用PuTTY中的plink.exe并设置GIT_SSH使用它)
Jenkins hanging at "Fetching upstream changes from origin"(将Jenkins更改为使用cmd \ git.exe而不是bin \ git.exe)
任何人都能通过永久修复找到解决方案吗?
Jenkins的控制台输出日志:
由远程主机启动
在工作区F:\ Jenkins \ jobs \ xxx \ workspace
中构建主服务器> git.exe rev-parse --is-inside-work-tree #timetime = 10
从远程Git存储库中获取更改
> git.exe config remote.origin.url xhttp:// scm / git / xxx #timeout = 10
从xhttp:// scm / git / xxx
获取上游更改> git.exe --version #timeout = 10
使用.gitcredentials设置凭据
> git.exe config --local credential.helper store --file = \“C:\ Users \ APP_JE~1 \ AppData \ Local \ Temp \ git7476037793811743133.credentials \”#timetime = 10
> git.exe -c core.askpass = true fetch --tags --progress xhttp:// scm / git / xxx + refs / heads / :refs / remotes / origin /
问题在这里:上述命令可能需要30秒到120秒。在本地开发机器上需要几秒钟。
> git.exe config --local --remove-section credential #timetime = 10
版本信息:
詹金斯:1.608(最新)
Windows:Server 2012
Git:1.9.5(最新版Windows xhttp://git-scm.com/download/win)
Jenkins的Git客户端插件:1.16.1(最新)
Jenkins的Git插件:2.3.5(最新)
Jenkins作为域用户运行,该用户在服务器上具有管理员访问权限
答案 0 :(得分:9)
Version 2.6.1 of the Git client for Windows解决了这个问题。现在它的速度非常快!
我在Jenkins中使用git cmd:
C:\ Program Files \ Git \ cmd \ git.exe
答案 1 :(得分:2)
使用高级克隆行为并启用"不提取标记"的复选框如果你不需要它们。 Git仍应检查您指定的分支/标记。
答案 2 :(得分:1)
尝试启用一些GIT的调试/性能标志,以获取有关其管道内部工作时间的更多信息,请参阅https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables。例如,export GIT_TRACE=1
并尝试GIT_TRACE_PERFORMANCE和GIT_TRACE_PACKET。