我想要检查在一个可能有多个提交的PR中更改的文件。我已经看到了许多关于如何查看两个提交之间更改的文件的答案,但那不是我的用例。
我的仓库中有一个名为“test-proxy”的文件夹。只有当“test-proxy”文件夹发生更改时,我才会在流水线中触发“test-proxy”部署阶段。
比如说,我打开了一个PR:
提交1——“test-proxy”文件夹没有更改——>“test-proxy”部署阶段不触发(符合预期)
提交2——“test-proxy”文件夹有更改——>“test-proxy”部署阶段触发(符合预期)
提交3——“test-proxy”文件夹没有更改——>“test-proxy”部署阶段不触发(不符合预期)!
这不是理想的,因为“test-proxy”测试用例可能在提交2中失败,如果该阶段不再运行,则会被忽略。我们不能让开发人员决定确保该阶段通过,应该由流水线处理。
现在,为了运行此PR的“test-proxy”部署阶段,开发人员将不得不对该文件夹进行虚拟提交。
请帮助解决上述问题。
我尝试过其他答案中找到的大多数git命令。这两个命令尽管不能给出确切的结果,但它们是我在流水线中使用的命令:
1.git diff-tree --name-only HEAD^ HEAD | grep test-proxy
2.git show --no-commit-id --name-only -r $(git log --pretty=format:'%h' -n 1) | grep test-proxy
期望的结果是:
当PR中的任何提交更改“test-proxy”文件夹时,“test-proxy”部署阶段应始终触发。
我的仓库中有一个名为“test-proxy”的文件夹。只有当“test-proxy”文件夹发生更改时,我才会在流水线中触发“test-proxy”部署阶段。
比如说,我打开了一个PR:
提交1——“test-proxy”文件夹没有更改——>“test-proxy”部署阶段不触发(符合预期)
提交2——“test-proxy”文件夹有更改——>“test-proxy”部署阶段触发(符合预期)
提交3——“test-proxy”文件夹没有更改——>“test-proxy”部署阶段不触发(不符合预期)!
这不是理想的,因为“test-proxy”测试用例可能在提交2中失败,如果该阶段不再运行,则会被忽略。我们不能让开发人员决定确保该阶段通过,应该由流水线处理。
现在,为了运行此PR的“test-proxy”部署阶段,开发人员将不得不对该文件夹进行虚拟提交。
请帮助解决上述问题。
我尝试过其他答案中找到的大多数git命令。这两个命令尽管不能给出确切的结果,但它们是我在流水线中使用的命令:
1.git diff-tree --name-only HEAD^ HEAD | grep test-proxy
2.git show --no-commit-id --name-only -r $(git log --pretty=format:'%h' -n 1) | grep test-proxy
期望的结果是:
当PR中的任何提交更改“test-proxy”文件夹时,“test-proxy”部署阶段应始终触发。