git - 如何将 'git diff-tree'放在某个目录上?

标签 git gitlab-ci

我需要一个已更改的文件列表并将其转储到文件

我可以通过运行这个来获取所有列表 git diff-tree --name-status -r "upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME..HEAD"> changed-files.txt

但现在我只想要一个在 resources 文件夹内更改的文件列表

怎么做?

最佳答案

您可以使用以下语法将提交中的子目录作为目标:

<commit hash or name>:path/to/dir

在您的情况下,您可以将 git diff-tree 命令更改为:

git diff-tree --name-status -t \
    "upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME":resources \
    HEAD:resources

正如@torek 评论的那样,您还可以在比较的元素之后简单地提供一个路径,以将差异缩小到该路径,因此以下命令也有效:

git diff-tree "upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" HEAD -- resources

关于git - 如何将 'git diff-tree'放在某个目录上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68709775/

相关文章:

php - 如何在 Windows 8 的 xmpp 中安装 zend

Git:删除目录会删除 git stashes 吗?

具有 shell 变量扩展的 Git 别名

docker - Docker推送到Google Cloud Registry-对HTTPS服务器的HTTP请求

markdown - 使用Markdown编辑器在gitlab Wiki中显示 latex 方程

gitlab - 从 Gitlab 问题创建新分支时不触发构建

testing - Gitlab 覆盖徽章总是未知的

eclipse - Git、SVN 和 Eclipse 工作流程

git - 如何使用 rebase 编辑推送的提交消息?

python - gitlab-CI 如何从也引用 gitlab 存储库的 gitlab 依赖项安装私有(private) python 包