git - 如何在 jenkins 中针对 master 分支运行 git diff-tree?

标签 git jenkins groovy jenkins-pipeline git-diff-tree

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

在我的 jenkinsfile 中有以下代码。

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

但我得到以下错误

fatal: ambiguous argument 'master': unknown revision or path not in the working tree.

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

仅供引用,上面的命令在本地有效,但在 jenkins 中无效。

最佳答案

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

这是对我有帮助的链接。

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

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

将其添加为引用规范。

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

关于git - 如何在 jenkins 中针对 master 分支运行 git diff-tree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54258004/

相关文章:

java - 我是否应该在生产环境中运行没有 servlet 容器的 Jenkins,即使用 java -jar jenkins.war

java - 如何告诉 IntelliJ 在 OSX 上使用 brew 安装的 groovy

jenkins - 如何将现有作业导出到 Jenkinsfile 中?

android - 在服务器上构建(不开发)您的Android应用.apk(渐变构建)?

git - 如何获取 git bisect 的当前 "status"?

svn - 我如何使用 git-svn 只获取/克隆几个分支?

string - Groovy:没有现成的 stringToMap 吗?

grails - 如何在ElasticSearch的精彩集锦中过滤掉(损坏的)HTML标签?

git - 如何将一个远程分支覆盖而不是 merge 到另一个分支?

python - Heroku:即使使用 runtime.txt,也无法检测到此 python 应用程序的默认语言