【问题标题】:ERROR: Workspace has a .git repository, but it appears to be corrupt错误:工作区有一个 .git 存储库,但它似乎已损坏
【发布时间】:2015-04-05 11:01:53
【问题描述】:

我无法通过 jenkins 从 Github 提取代码。我确实尝试在 jenkins 中切换 git 插件,但没有成功。不知道是什么问题..对此的一些指示会有所帮助.. 我是否缺少某些插件或 ami 使用了错误版本的插件?

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/TestGitCon/workspace
Checkout:workspace / /var/lib/jenkins/jobs/TestGitCon/workspace - hudson.remoting.LocalChannel@37ff3f85
Using strategy: Default
ERROR: Workspace has a .git repository, but it appears to be corrupt.
hudson.plugins.git.GitException: Error performing command: usr/bin/git rev-parse --verify HEAD
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:904)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:858)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:868)
	at hudson.plugins.git.GitAPI.validateRevision(GitAPI.java:326)
	at hudson.plugins.git.GitAPI.hasGitRepo(GitAPI.java:125)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1005)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
	at hudson.FilePath.act(FilePath.java:981)
	at hudson.FilePath.act(FilePath.java:959)
	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1265)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:622)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
	at hudson.model.Run.execute(Run.java:1759)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:89)
	at hudson.model.Executor.run(Executor.java:240)
Caused by: java.io.IOException: Cannot run program "usr/bin/git" (in directory "/var/lib/jenkins/jobs/TestGitCon/workspace"): error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
	at hudson.Proc$LocalProc.<init>(Proc.java:244)
	at hudson.Proc$LocalProc.<init>(Proc.java:216)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:803)
	at hudson.Launcher$ProcStarter.start(Launcher.java:381)
	at hudson.Launcher$ProcStarter.join(Launcher.java:388)
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:885)
	... 18 more
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
	at java.lang.ProcessImpl.start(ProcessImpl.java:130)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
	... 24 more
Cloning the remote Git repository
Cloning repository git@github.com:RosettaCommons/main.git
Error trying to determine the git version: Error performing command: usr/bin/git --version
Assuming 1.6
Fetching upstream changes from git@github.com:RosettaCommons/main.git
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway.
hudson.plugins.git.GitException: Error performing command: usr/bin/git fetch -t git@github.com:RosettaCommons/main.git +refs/heads/*:refs/remotes/origin/*
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:904)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:858)
	at hudson.plugins.git.GitAPI.fetch(GitAPI.java:200)
	at hudson.plugins.git.GitAPI.fetch(GitAPI.java:1105)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
	at hudson.FilePath.act(FilePath.java:981)
	at hudson.FilePath.act(FilePath.java:959)
	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1265)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:622)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
	at hudson.model.Run.execute(Run.java:1759)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:89)
	at hudson.model.Executor.run(Executor.java:240)
Caused by: java.io.IOException: Cannot run program "usr/bin/git" (in directory "/var/lib/jenkins/jobs/TestGitCon/workspace"): error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
	at hudson.Proc$LocalProc.<init>(Proc.java:244)
	at hudson.Proc$LocalProc.<init>(Proc.java:216)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:803)
	at hudson.Launcher$ProcStarter.start(Launcher.java:381)
	at hudson.Launcher$ProcStarter.join(Launcher.java:388)
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:885)
	... 17 more
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
	at java.lang.ProcessImpl.start(ProcessImpl.java:130)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
	... 23 more
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1076)
	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
	at hudson.FilePath.act(FilePath.java:981)
	at hudson.FilePath.act(FilePath.java:959)
	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:1265)
	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:622)
	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
	at hudson.model.Run.execute(Run.java:1759)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:89)
	at hudson.model.Executor.run(Executor.java:240)

【问题讨论】:

    标签: git jenkins repository jenkins-plugins corrupt


    【解决方案1】:

    我的 git 可执行文件路径是 var/lib/jenkins。我在var/lib/jenkins前加了一个斜杠,即/var/lib/jenkins。我还安装了“Git pull request builder”插件。我将 git 插件版本降级为 1.1.26。现在我可以通过jenkins从github下载代码了。

    【讨论】:

      【解决方案2】:

      我有同样的错误,但在我的情况下,原因不同。实际上,我在一个 shell 脚本文件中使用了 curl 命令,然后我不得不创建一个 Docker 镜像。 因此,为了使 Docker 映像能够执行 curl 命令,我必须安装 Curl。我已经在 Docker 文件中编写了以下代码

      RUN apt-get update && \
      apt-get install -y curl && \
      

      但是当我提交我的代码时,Jenkins 构建失败并显示相同的消息 错误:工作区有一个 .git 存储库,但它似乎已损坏

      解决方法是我必须在 install curl 命令中添加--no-install-recommends。像这样

      RUN apt-get update && \
      apt-get install -y --no-install-recommends curl && \
      

      原因是Ubuntu installs recommended but not suggested packages。因此,Ubuntu 试图添加一些不需要但可能是推荐的软件包,但不知何故导致构建失败。

      【讨论】:

        【解决方案3】:

        要解决此问题,请在 Jenkins 从站(或服务器)中找到 /jenkins/workspace/&lt;job name&gt; 目录。您应该删除工作区中的所有文件(如果这样做没有负面影响)或仅删除 .git 目录。

        再次运行你的工作。

        【讨论】:

          【解决方案4】:

          开始检查您在 Jenkins 设置中为 git 工具设置的位置(Jenkins -> 管理 Jenkins -> 配置系统)。

          例如见this answer:

          看起来 Jenkins 的 GIT 配置有问题,给出了 GIT 的完整路径,而不仅仅是“git

          【讨论】:

            猜你喜欢
            • 2017-04-06
            • 1970-01-01
            • 2015-12-30
            • 2013-05-23
            • 2020-03-18
            • 1970-01-01
            • 2019-07-15
            • 2013-03-04
            相关资源
            最近更新 更多