繁体   English   中英

詹金斯挂在 git fetch

[英]Jenkins hangs at git fetch

我是 Jenkins 的新手,我试图让它在我的 .NET 项目中运行一些单元测试。

当我运行构建时,它在尝试从 git 存储库中获取时挂起。

错误:10 分钟后超时

C:\\Program Files\\Git\\cmd\\git.exe config --local --remove-section credential # timeout=10 错误:获取远程存储库'origin' hudson.plugins.git.GitException 时出错:无法从https获取: //github.com/name.of.repo

我已经按照https://wiki.jenkins-ci.org/display/JENKINS/Git+ 上的 jenkins 说明生成了已知主机并将 .ssh 目录复制到 C:\\Windows\\SysWOW64\\config\\systemprofile.ssh插件下“詹金斯,GIT插件和Windows”

我从 cmd 行运行 ssh git@github.com 并且我可以成功进行身份验证。

请问有什么想法吗?

谢谢:)

这可能是防火墙问题。 您可以使用 SSH(端口 22)向 Github 进行身份验证,以便该路由正常工作。 但是,您的工作是尝试通过超时的https://github.com (端口 443)访问 github。 尝试通过 ssh 访问 github,方法是将存储库 url 更改为git@github.com:account/repository.git (您可以在git@github.com:account/repository.git主页上找到此 URL,下拉“选择克隆 URL”,选项“SSH”。

我遇到了与 OP 相同的问题。 SSH 凭证存储在 Jenkins 中,可用于访问同一存储库的许多其他节点。 我可以作为 Jenkins 用户 ssh 进入机器,并使用与 Jenkins 作业相同的 SSH 存储库 URL 在存储库上执行git clone ( git@git.com:account/repo.git )。

作为一种解决方法,我暂时将 Jenkins 作业中的 git 凭据设置为none 我认为这允许它使用本地存储的凭据。

它现在正在工作。

在尝试使用 SSH 代替用户名和密码访问远程 Git 存储库之前,您必须注意克隆和获取的超时设置。

当您的 Internet 连接不良且远程存储库大小较大时,将导致克隆超时。

进入项目设置: Source Code Management -> Additional Behaviours -> Advanced clone behaviours -> Timeout (In Minutes) for clone and fetch operations -> 超过10分钟。

在此处输入图片说明

然后如果你仍然有同样的问题 git clone 卡了很长时间,无论是网络连接不好还是远程仓库很大,你可以尝试使用 SSH 来访问你的远程 Git 仓库,而不是用户名 &密码。

使用 SSH 的一个更简单的替代方法是在运行任何git命令之前添加此代码段。

echo "https://${GITHUB_USER}:${GITHUB_TOKEN}@github.intuit.com" >> /tmp/gitcredfile
git config --global credential.helper "store --file=/tmp/gitcredfile"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM