在GitLab中运行git push时如何从多个提交中获取文件?

时间:2018-08-13 05:53:19

标签: git gitlab gitlab-ci

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

我正在尝试使用此命令

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

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

2 个答案:

答案 0 :(得分:1)

这将解决我的问题。

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

更新:    上面的命令还包括通过其他分支进行母版更改。 假设有人将代码更改推送到master,而您没有拉出它们,那么当您运行上述命令时,它会将这些更改显示为当前分支中的diff。

我认为whatchanged已被淘汰,您可以将其替换为log

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

答案 1 :(得分:0)

查看给定提交和当前提交使用之间的文件更改-

git diff --name-only <starting SHA> HEAD

在更笼统地解决您的问题时,要检查两次提交之间更改了哪些文件-

git diff --name-only <commit1> <commit2>