git - 在 GitLab 中运行 git push 时如何从多个提交中获取文件?
问题描述
GitLab
在 git push 上运行管道。在运行此管道时,如果发生多个提交,我想获取将从所有提交中推送的文件列表。
我正在尝试使用此命令
git diff-tree --no-commit-id --name-only -r ${CI_COMMIT_SHA}
但这仅给出最近的提交。如果分支中发生了多个提交,则仅提供最后一次提交的详细信息。我想获取在推送期间提交的所有文件。
什么时候git
能够从需要推送的多个提交中找到所有文件,我们怎么能不呢?
解决方案
这将解决我的问题。
git whatchanged --name-only --pretty="" origin..HEAD
更新: 上面的命令还包括通过其他分支对 master 所做的更改。假设其他人将代码更改推送到 master 并且您没有拉取它们,然后当您运行上述命令时,它会将这些更改显示为当前分支中的差异。
我认为whatchanged
已弃用,您可以将其替换为log
如果您只想查看当前分支的更改,您可以使用这个
git diff master... --name-only
或git diff --name-only master...<branch_name>
推荐阅读
- javascript - *ngFor 即使数据更新也不显示数据
- kubernetes - 存储类是 Kubernetes 中的集群级对象吗?
- c# - C# 为 HWND_BROADCAST 找到已经运行的应用程序实例窗口句柄
- java - 使用 Jackson 从 URL 解析 JSON 数据时返回空值
- r - 使用 data.table 中的集合更改多列
- javascript - 如何以编程方式启用“-ms-high-contrast”媒体查询?
- r - 使用池包在闪亮的应用程序中超出数据库连接限制
- mongodb - 为 Bson.M mongodb 创建自定义 mashler/unmashler 时出错
- elasticsearch - 弹性搜索中的自定义时间序列索引
- graphql-codegen - 突变后更新缓存:类型'{名称:任何;属性'名称'不存在; } | 无效的'