Windows命令上的git插件从Jenkins失败,在shell中成功

时间:2015-12-16 20:03:08

标签: windows git jenkins

我正在使用Git Plugin在我的Windows构建计算机上设置Jenkins。我正在使用网络驱动器Z上的目录:现在作为git存储库。我为存储库URL输入“z:\ my \ repo \ path”,我得到:

Failed to connect to repository : Command "git.exe -c core.askpass=true ls-remote -h z:\my\repo\path HEAD" returned status code 128:
stdout:
stderr: fatal: 'z:\my\repo\path' does not appear to be a git repository
fatal: Could not read from remote repository.

然而,如果我打开一个新的命令提示符并输入该命令,它可以正常工作(也没有输出):

> git.exe -c core.askpass=true ls-remote -h z:\my\repo\path HEAD
> 

可能是什么问题?我甚至不知道从哪里开始。我已经设置了PATHGIT_HOME系统环境变量并重新启动了Jenkins,所以很明显它找到了可执行文件。

我尝试了file:///式的路径并获得了相同的结果。

输出GIT_CURL_VERBOSE=1GIT_TRACE=1设置的手动命令:

15:43:24.905801 git.c:348               trace: built-in: git 'ls-remote' '-h' 'z:\\my\\repo\\path' 'HEAD'
15:43:24.905801 run-command.c:343       trace: run_command: 'git-upload-pack '\''z:\\my\\repo\\path'\'''

1 个答案:

答案 0 :(得分:1)

我认为问题可能在于正确设置SSH密钥。

第一个建议 - 回购的UNC路径

您可以尝试使用file:////格式代替windows路径吗?

如果是分享,请尝试使用git clone file:////<host>/<share>/<path>

请使用this作为参考。

第二个建议 - SSH密钥

来自https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-: (虽然错误与你所拥有的不同)

  

有些窗户很有趣

     

如果你做了所有事情,你现在应该有一个〜/ .ssh文件夹   (例如,c:\ Users \ Bob.ssh),此文件夹包含您的密钥。   此时,您甚至可以手动(从控制台),   克隆你的存储库,但詹金斯一直在失败   这样:

     

代码128:克隆到C:\ Program Files \ Jenkins \ jobs \ PG3 \ workspace ...   致命:   远程端意外挂断了

     

如果遇到此问题,则可能需要复制id_rsa *文件   从你的〜./。ssh到另一个文件夹。找到你的git.exe并检查是否   那里有一个.ssh文件夹。如果是这样,请将〜。/ ssh / id_rsa *复制到此处   文件夹然后重试。