Git 如何通过多次提交检查/列出PR中更改的所有文件

Git 如何通过多次提交检查/列出PR中更改的所有文件,git,pull-request,jenkins-groovy,Git,Pull Request,Jenkins Groovy,我想检查可能有多个提交的PR中更改的文件。我看到了关于如何在两个提交之间查看文件更改的多个答案,但这不是我的用例。 我的repo中有一个名为“testproxy”的文件夹。只有当测试代理文件夹发生更改时,我才会在管道中触发测试代理部署阶段。 比如说,我开了一家公关公司 提交1-测试代理文件夹中无更改->测试代理部署阶段不会触发(预期) 提交2-测试代理文件夹中的更改->测试代理部署阶段触发器(预期) 提交3-测试代理文件夹中无任何更改->测试代理部署阶段不会触发-(不期望) 这并不理想,因为测试

我想检查可能有多个提交的PR中更改的文件。我看到了关于如何在两个提交之间查看文件更改的多个答案,但这不是我的用例。 我的repo中有一个名为“testproxy”的文件夹。只有当测试代理文件夹发生更改时,我才会在管道中触发测试代理部署阶段。 比如说,我开了一家公关公司

提交1-测试代理文件夹中无更改->测试代理部署阶段不会触发(预期)

提交2-测试代理文件夹中的更改->测试代理部署阶段触发器(预期)

提交3-测试代理文件夹中无任何更改->测试代理部署阶段不会触发-(不期望)

这并不理想,因为测试代理测试用例可能在提交2中失败,如果该阶段不再运行,则会忽略提交2。我们不能让开发商自行决定,以确保阶段通过。应该通过管道进行处理。 现在,为了运行此PR的测试代理部署阶段,开发人员必须对文件夹进行虚拟提交

请帮助解决上述问题

我已经尝试了在其他答案中找到的大多数git命令,以供测试。这两个是我的管道中的,即使他们没有给出确切的结果-

  • git diff tree--仅名称HEAD^HEAD | grep测试代理

  • git show--no commit id--name only-r$(git log--pretty=格式:'%h'-n 1)| grep测试代理

  • 期望-


    当PR中的任何提交更改到测试代理文件夹时,应始终触发测试代理部署阶段。

    您希望检测PR尖端与PR从当前分支分支分支出来的点之间的任何差异(称之为
    主分支
    ):

    如果您只是想知道是否有更改,请输入
    --quiet
    --exit code

    git diff-tree --quiet --exit-code $(git merge-base master HEAD) HEAD -- test-proxy
    

    注意,如果
    测试代理

    中没有更改,这将报告成功。嘿,只是为了澄清一下,您想在更改发生时部署特定的提交吗?因为这就是我从你的例子中理解的。非常感谢!尽管Jenkins使用了上面的命令,但我还是做了一个小改动(git merge base refs/remotes/origin/master HEAD)
    git diff-tree --quiet --exit-code $(git merge-base master HEAD) HEAD -- test-proxy