本地Git获变更文件正常,Jenkins流水线返回错误列表如何解决?
Git变更文件列表在本地与Jenkins流水线中结果不一致
问题背景
我需要获取当前分支相对于master分支的所有变更文件(master可能已被其他开发者更新),但在Jenkins流水线中尝试多个Git命令后,始终无法得到正确的文件列表,和本地执行结果差异很大。
本地环境的正确执行结果
在本地环境中,以下两个Git命令都能返回预期的变更文件列表:
git diff --name-only origin/master... git diff --name-only $(git merge-base HEAD origin/master)..
返回的正确文件列表:
e2e-v2/src/__specs__/alerts/alert-definitions.test.ts tools/jenkins/e2e.groovy tools/scripts/package.json
Jenkins流水线的异常结果
但在Jenkins流水线中执行完全相同的命令,返回的变更文件列表却是:
tools/docker-collector-metrics/docker.yml tools/docker-collector-metrics/system.yml tools/jenkins/.env
疑问
完全无法理解为什么本地和Jenkins的结果会有这么大的差异,会不会是Jenkins的Git上下文环境和本地不一致导致的?
内容的提问来源于stack exchange,提问作者Tom Cohen
相关产品推荐
相关产品推荐

