如何 check/list 通过多次提交在 PR 中更改所有文件
How to check/list all files changed in PR with multiple commits
我想检查 PR 中更改的文件,其中可能有多个 commits.I 已经看到多个关于如何查看两次提交之间更改的文件的答案,但这不是我的用例。
我的仓库中有一个名为 "test-proxy" 的文件夹。仅当测试代理文件夹发生更改时,我才会在管道中触发测试代理部署阶段。
说,我开个PR
提交 1 - test-proxy 文件夹没有变化 -> test-proxy 部署阶段没有触发(预期)
提交 2 - test-proxy 文件夹中的更改 -> test-proxy 部署阶段触发器(预期)
提交 3 - test-proxy 文件夹中没有更改 -> test-proxy 部署阶段不会触发 -(预计不会)!
这并不理想,因为测试代理测试用例可能在提交 2 中失败,如果该阶段不再 运行,这将被忽略。我们不能让开发人员自行决定以确保阶段通过。它应该由管道处理。
现在,为了 运行 此 PR 的测试代理部署阶段,开发人员必须对文件夹进行虚拟提交。
请帮助解决上述问题。
我已经尝试了在其他答案中找到的大部分 git 命令进行测试。这两个是我的管道中的那些,即使它们没有给出确切的结果 -
git diff-tree --name-only HEAD^ HEAD | grep 测试代理
git show --no-commit-id --name-only -r $(git log --pretty=format:'%h' -n 1) | grep 测试代理
预计 -
当 PR 中的任何提交对 test-proxy 文件夹进行更改时,test-proxy 部署阶段应该始终触发。
您想检测 PR 的尖端与 PR 从当前分支分支出来的点(称之为 master
)之间的任何差异:
git diff-tree --name-only $(git merge-base master HEAD) HEAD -- test-proxy
如果您只对是否 有变化感兴趣,请输入 --quiet
和 --exit-code
:
git diff-tree --quiet --exit-code $(git merge-base master HEAD) HEAD -- test-proxy
请注意,如果 test-proxy
中有 no 变化,这将报告成功。
我想检查 PR 中更改的文件,其中可能有多个 commits.I 已经看到多个关于如何查看两次提交之间更改的文件的答案,但这不是我的用例。 我的仓库中有一个名为 "test-proxy" 的文件夹。仅当测试代理文件夹发生更改时,我才会在管道中触发测试代理部署阶段。 说,我开个PR
提交 1 - test-proxy 文件夹没有变化 -> test-proxy 部署阶段没有触发(预期)
提交 2 - test-proxy 文件夹中的更改 -> test-proxy 部署阶段触发器(预期)
提交 3 - test-proxy 文件夹中没有更改 -> test-proxy 部署阶段不会触发 -(预计不会)!
这并不理想,因为测试代理测试用例可能在提交 2 中失败,如果该阶段不再 运行,这将被忽略。我们不能让开发人员自行决定以确保阶段通过。它应该由管道处理。 现在,为了 运行 此 PR 的测试代理部署阶段,开发人员必须对文件夹进行虚拟提交。
请帮助解决上述问题。
我已经尝试了在其他答案中找到的大部分 git 命令进行测试。这两个是我的管道中的那些,即使它们没有给出确切的结果 -
git diff-tree --name-only HEAD^ HEAD | grep 测试代理
git show --no-commit-id --name-only -r $(git log --pretty=format:'%h' -n 1) | grep 测试代理
预计 -
当 PR 中的任何提交对 test-proxy 文件夹进行更改时,test-proxy 部署阶段应该始终触发。
您想检测 PR 的尖端与 PR 从当前分支分支出来的点(称之为 master
)之间的任何差异:
git diff-tree --name-only $(git merge-base master HEAD) HEAD -- test-proxy
如果您只对是否 有变化感兴趣,请输入 --quiet
和 --exit-code
:
git diff-tree --quiet --exit-code $(git merge-base master HEAD) HEAD -- test-proxy
请注意,如果 test-proxy
中有 no 变化,这将报告成功。