詹金斯挂着git fetch

时间:2016-04-20 15:57:13

标签: git github jenkins ssh jenkins-plugins

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

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

错误:10分钟后超时

  

C:\ Program Files \ Git \ cmd \ git.exe config --local --remove-section credential #timetime = 10   错误:获取远程回购'来源错误   hudson.plugins.git.GitException:无法从https://github.com/name.of.repo获取

我已经生成了已知的主机并将.ssh dir复制到了C:\ Windows \ SysWOW64 \ config \ systemprofile.ssh,按照https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin下的jenkins说明" Jenkins,GIT插件和Windows"

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

有什么想法吗?

谢谢:)

4 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:1)

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

作为一种解决方法,我现在将Jenkins作业中的git凭据设置为none。我假设它允许它使用本地存储的凭证。

现在正在运作。

答案 2 :(得分:0)

在尝试使用SSH而非用户名和密码访问SSH之前,您必须注意克隆和提取的超时设置。

如果您的互联网连接中断并且远程存储库很大,则会导致克隆超时。

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

enter image description here

然后,如果仍然存在相同的问题,无论是Internet连接不良还是大型远程存储库,git clone长时间卡住,您可以尝试使用SSH来访问远程Git存储库用户名和密码。

答案 3 :(得分:0)

使用SSH的一种更简单的选择是在运行任何git命令之前添加此代码段。

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