在Git Diff中如何排除根目录下路径不含/的文件?
过滤Git分支对比中的根层级文件
要排除分支对比结果里的根目录文件(路径不含/的文件),直接用Git的路径匹配规则就能实现:
- 核心命令格式:
git diff <分支1> <分支2> -- ':!:[^/]*'
规则解释
:!是Git路径spec的排除标记,后面跟要排除的路径模式[^/]*是正则匹配逻辑:[^/]匹配不是斜杠的任意字符,*匹配任意数量的该字符,合起来就精准匹配根目录下所有不带子路径的文件(也就是路径里没有/的文件)
实际示例
比如对比main和feature分支的变更,同时排除根文件:
git diff main feature -- ':!:[^/]*'
如果还要额外排除某个目录(比如docs),直接叠加排除规则即可:
git diff main feature -- ':!docs/' ':!:[^/]*'
内容的提问来源于stack exchange,提问作者ChikChak
相关产品推荐
相关产品推荐

