首页 > 解决方案 > 如何在詹金斯的主分支上运行 git diff-tree?

问题描述

我希望能够在 jenkins 构建期间查看当前分支和主分支之间哪些文件发生了更改。

在我的 jenkinsfile 中,我有以下代码。

git diff-tree -r --no-commit-id --name-only ${env.GIT_COMMIT} origin/master

但我收到以下错误

致命:模棱两可的参数“主”:未知的修订或路径不在工作树中。

任何帮助将不胜感激..如果有人能告诉我我做错了什么或设计一种替代解决方案来为我提供已更改文件的文件路径,那就太好了。

仅供参考,上述命令在本地有效,但在詹金斯中无效。

标签: gitjenkinsgroovyjenkins-pipelinegit-diff-tree

解决方案


我终于找到了解决这个问题的方法。@vonc 为我指出了正确的方向,但他提供的链接没有任何意义。

这是帮助我的链接。

https://issues.jenkins-ci.org/browse/JENKINS-45666?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel

您必须在项目的 jenkins 设置中添加一个 refspec。如果您使用的是 github 组织,则必须在组织设置中申请,因为您无法更改特定的 repos 设置。无论如何,这对我有用。

将此添加为参考规范。

+refs/heads/master:refs/remotes/@{remote}/master

推荐阅读