我希望能够在 jenkins 构建期间查看当前分支和主分支之间的哪些文件发生了变化。
在我的 Jenkinsfile 中,我有以下代码。
git diff-tree -r --no-commit-id --name-only ${env.GIT_COMMIT} origin/master
但是我收到以下错误
致命:模棱两可的参数"master":未知修订或路径不在工作树中。
任何帮助将不胜感激。如果有人能告诉我我做错了什么,或者设计一个替代解决方案,为我提供已更改文件的文件路径,那就太好了。
仅供参考,上述命令在本地工作,但在 Jenkins 中不起作用。
我终于找到了解决这个问题的方法。 @vonc为我指出了正确的方向,但他提供的链接没有任何意义。
这是帮助我的链接。
https://issues.jenkins-ci.org/browse/JENKINS-45666?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-tabpanel
您必须在项目的 jenkins 设置中添加一个 refspec。如果您使用的是 github 组织,则必须在组织设置中应用,因为您无法更改特定的存储库设置。无论如何,这对我有用。
将其添加为参考规范。
+refs/heads/master:refs/remotes/@{remote}/master
这应该意味着在 Jenkins 工作区中没有签出master
分支。
这是默认分支不master
的克隆存储库的典型特征。
确保在 jenkins 中进行预构建步骤:
git checkout -b master origin/master
然后重试您的差异。