首页 > 解决方案 > 在 GitLab 中运行 git push 时如何从多个提交中获取文件?

问题描述

GitLab在 git push 上运行管道。在运行此管道时,如果发生多个提交,我想获取将从所有提交中推送的文件列表。

我正在尝试使用此命令

git diff-tree --no-commit-id --name-only -r ${CI_COMMIT_SHA}但这仅给出最近的提交。如果分支中发生了多个提交,则仅提供最后一次提交的详细信息。我想获取在推送期间提交的所有文件。

什么时候git能够从需要推送的多个提交中找到所有文件,我们怎么能不呢?

标签: gitgitlabgitlab-ci

解决方案


这将解决我的问题。

git whatchanged --name-only --pretty="" origin..HEAD

更新: 上面的命令还包括通过其他分支对 master 所做的更改。假设其他人将代码更改推送到 master 并且您没有拉取它们,然后当您运行上述命令时,它会将这些更改显示为当前分支中的差异。

我认为whatchanged已弃用,您可以将其替换为log

如果您只想查看当前分支的更改,您可以使用这个 git diff master... --name-onlygit diff --name-only master...<branch_name>


推荐阅读