You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Git中提交A与提交B之间新增的目录?

仅显示Git提交A和B之间新增的目录

可以通过组合Git命令和简单的文本处理工具实现这个需求,核心思路是先筛选出两个提交间新增的文件,再提取这些文件所在的目录并去重(同一目录下多个文件新增会重复出现)。

方法一:使用git diff

执行以下命令:

git diff --name-only --diff-filter=A <commit-A> <commit-B> | xargs -I{} dirname "{}" | sort -u

各部分作用:

  • --name-only:仅输出发生变更的文件路径,不显示具体diff内容
  • --diff-filter=A:只筛选**新增(Added)**的文件
  • xargs -I{} dirname "{}":对每个新增文件路径提取其所在的目录
  • sort -u:对目录列表排序并去重,避免同一目录多次出现

方法二:使用git log(查看提交区间内所有提交的新增目录)

如果需要查看<commit-A>到<commit-B>之间所有提交里新增的目录,可执行:

git log --name-only --diff-filter=A --pretty=format:'' <commit-A>..<commit-B> | xargs -I{} dirname "{}" | sort -u
  • --pretty=format:'':去掉log的提交信息,只保留文件路径
  • 其余参数作用和方法一一致

注意事项

Git本身不追踪空目录,所以新增的目录一定是因为目录下有文件被首次提交,上述命令正是基于这个特性来提取新增目录的。如果是空目录,Git不会将其纳入版本控制,也就不会出现在diff或log的结果中。

内容的提问来源于stack exchange,提问作者Borea Deitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:02:03