• [Jenkins][git]构建时提示Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git reset --hard" returned status code 128:


    ---------------------

    如需转载,转载请注明出处。

    ---------------------

    今日发现所有IOS构建相关的job全部失败,并提示如下错误:

    ERROR: Error fetching remote repo 'origin'
    hudson.plugins.git.GitException: Failed to fetch from http://git.xxxx/ios/xxxx-ios.git
        at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:810)
        at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1066)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1097)
        at hudson.scm.SCM.checkout(SCM.java:485)
        at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
        at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604)
        at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
        at hudson.model.Run.execute(Run.java:1741)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:98)
        at hudson.model.Executor.run(Executor.java:410)
    Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git reset --hard" returned status code 128:
    stdout: 
    stderr: error: bad signature
    fatal: index file corrupt
    
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1719)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1695)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1691)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1321)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.reset(CliGitAPIImpl.java:372)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.clean(CliGitAPIImpl.java:670)
        at hudson.plugins.git.GitAPI.clean(GitAPI.java:311)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:884)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:859)
        at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:818)
        at hudson.remoting.UserRequest.perform(UserRequest.java:152)
        at hudson.remoting.UserRequest.perform(UserRequest.java:50)
        at hudson.remoting.Request$2.run(Request.java:332)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at hudson.remoting.Engine$1$1.run(Engine.java:85)
        at java.lang.Thread.run(Thread.java:745)
        at ......remote call to qa-ios4-macpro(Native Method)
        at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416)
        at hudson.remoting.UserResponse.retrieve(UserRequest.java:252)
        at hudson.remoting.Channel.call(Channel.java:781)
        at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:249)
        at com.sun.proxy.$Proxy76.clean(Unknown Source)
        at org.jenkinsci.plugins.gitclient.RemoteGitImpl.clean(RemoteGitImpl.java:453)
        at hudson.plugins.git.extensions.impl.CleanBeforeCheckout.decorateFetchCommand(CleanBeforeCheckout.java:32)
        at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:806)
        ... 11 more
    ERROR: null

    解决思路:

    其实遇到这种问题的原因有很多,大致如下:

    1. Linux/Mac的权限问题:确保启动Jenkins服务的用户自身有Jenkins所在目录的权限。(比如用非root用户权限进行操作)

    2. 账号权限问题:确保Job里选择的Credentials账号有权限,GIT对应的SSH配置存在。

    3. 工程目录损坏问题:在workspace工程目录下,尝试git命令是否可用。

    发现提示:

    error: bad signature
    fatal: index file corrupt

    说明:

    index file在git中指的是.git/index这个文件。这个文件保存的是暂存区的信息,也就是索引信息。

    可以通过 git ls-files --stage 来查看暂存区的内容。

    通过错误信息fatal:index file corrupt,可以看出这个文件已经损坏。 可以通过git reset来恢复。

    解决方法:

    1. 进入工程目录下:/Users/Shared/Jenkins/Home/jenkins/workspace/xxxx-ios/.git

    2. 删除或重命名.git目录下的index文件:rm -f .git/index或mv .git/index.bak

    3. 重新生成index文件:git reset

    4. 检查是否可用:git status

    再次构建,成功,cheers~

    今日发现,提交代码后,Jenkins没有自动构建,进入相应工程目录后发现:

    提示如下:

    fatal: index file smaller than expected

     使用本文所写的方法即可解决。

  • 相关阅读:
    SQL计算生日所属的星座 XuZhao
    IIS 操作系统 .net FrameWork 的一些常见问题
    Python面向对象4.实例属性、实例方法
    Python面向对象6.init方法
    Python面向对象3.定义类、创建对象
    源码部署zabbix4.0监控
    IE6 Select控件挡住DIV内容解决办法
    转自网上的c#日期大全
    已更新或者删除的行值不能使该行成为唯一行(sql2005) 解决办法
    asp 多行多列加分页代码
  • 原文地址:https://www.cnblogs.com/dzblog/p/9449072.html
Copyright © 2020-2023  润新知