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

Git入门者咨询:如何列出仓库近一周提交中新增/删除的文件?

列出Git仓库近一周新增/删除文件的几种实用方法

嘿,这个需求其实用Git的命令组合就能轻松搞定,我整理了几个不同场景下的用法,你可以按需选择:

1. 一次性列出所有新增/删除的文件(去重)

如果你只想得到一份干净的、无重复的文件列表,用这个命令:

git log --since="1 week ago" --pretty=format: --name-status | grep -E "^(A|D)" | cut -f2- | sort | uniq

我拆解下每个部分的作用:

  • --since="1 week ago":限定只查询近一周内的提交记录
  • --pretty=format::去掉提交信息里的作者、日期、提交说明等冗余内容,只保留文件相关的行
  • --name-status:显示每个文件的变更状态(A=新增,D=删除,M=修改等)
  • grep -E "^(A|D)":过滤出状态为新增或删除的行,排除修改类文件
  • cut -f2-:去掉每行开头的状态标记,只保留文件名部分
  • sort | uniq:对文件名排序并去重,避免同一个文件多次提交后重复显示

2. 按提交分组显示(关联提交信息)

如果你想知道这些新增/删除的文件属于哪个提交,可以用这个命令,它会把提交信息和对应的文件变动关联起来:

git log --since="1 week ago" --name-status --oneline | grep -B1 -E "^(A|D)"

补充说明:

  • --oneline:用简短的提交哈希和标题显示每个提交,内容更紧凑
  • grep -B1 -E "^(A|D)":显示匹配到的新增/删除文件行,同时显示它前面的一行(对应提交信息),让你清楚看到每个提交里的文件变动

3. 单独列出新增或删除的文件

如果只需要看新增的文件,或者只看删除的文件,可以用更精准的过滤:

  • 只看新增文件:
git log --since="1 week ago" --pretty=format: --name-only --diff-filter=A | sort | uniq
  • 只看删除文件:
git log --since="1 week ago" --pretty=format: --name-only --diff-filter=D | sort | uniq

这里的--diff-filter=A和--diff-filter=D是直接告诉Git只筛选新增(Added)或删除(Deleted)的文件,比用grep过滤更高效准确。

小提示

如果你的Git版本比较老,--since="1 week ago"可能需要换成--since=7.days,不过现在大部分新版本的Git都支持两种写法,你可以试试哪种更适配你的环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:38:09