如何使用git diff-tree命令仅获取指定目录(resources)下的变更文件列表?
只获取resources文件夹内的变更文件列表
你只需要在原命令末尾加上路径过滤规则就行,Git的diff-tree命令支持通过指定路径来限定变更文件的范围,具体修改后的命令如下:
git diff-tree --name-status -r "upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME..HEAD" -- resources/ > changed-files.txt
关键细节说明:
- 这里的
--是用来分隔分支范围参数和路径参数的,避免Git把路径误判为分支名的一部分,尤其是当你的路径名称和分支名有重叠时,加上它会更稳妥。 resources/指定了只关注这个文件夹下的所有变更文件,包括其内部子文件夹里的内容。如果需要更精细的过滤(比如只看resources下的.yml类型文件),可以用类似resources/*.yml这样的通配符模式。
举个实际场景的例子:如果原命令会输出项目里所有变更的文件,加上resources/过滤后,changed-files.txt里就只会保留该文件夹下的变更记录了。
内容的提问来源于stack exchange,提问作者Roy
相关产品推荐
相关产品推荐

