GitLab
在git push上运行管道。在运行此管道时,我想获取如果发生多个提交,将从所有提交中推送的文件列表。
我正在尝试使用此命令
git diff-tree --no-commit-id --name-only -r ${CI_COMMIT_SHA}
,但这仅提供最近的提交。如果分支中发生了多个提交,则仅提供最后的提交详细信息。我想获取在该推送过程中提交的所有文件。
当git
能够从多个需要提交的提交中找到所有文件时,我们怎么能呢?
答案 0 :(得分:1)
这将解决我的问题。
git whatchanged --name-only --pretty="" origin..HEAD
更新: 上面的命令还包括通过其他分支进行母版更改。 假设有人将代码更改推送到master,而您没有拉出它们,那么当您运行上述命令时,它会将这些更改显示为当前分支中的diff。
我认为whatchanged
已被淘汰,您可以将其替换为log
如果您只想查看当前分支中的更改,可以使用此
git diff master... --name-only
或git diff --name-only master...<branch_name>
答案 1 :(得分:0)
查看给定提交和当前提交使用之间的文件更改-
git diff --name-only <starting SHA> HEAD
在更笼统地解决您的问题时,要检查两次提交之间更改了哪些文件-
git diff --name-only <commit1> <commit2>
。