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

如何通过Git获取最近X天修改文件的文件名及对应作者信息?

获取最近X天修改文件及对应作者

可以通过以下命令实现,直接输出「文件名 作者名」格式的结果,仅保留必要信息:

方法一:基于提交遍历去重

git log --since="2 days ago" --pretty=format:"%H %an" | while read hash author; do
  git show --name-only --pretty=format: "$hash" | while read file; do
    echo "$file $author"
  done
done | sort -u

命令说明

  • git log --since="2 days ago" --pretty=format:"%H %an":筛选最近2天的提交,输出「提交哈希 作者名」
  • 外层while循环读取每个提交的哈希和作者
  • git show --name-only --pretty=format: "$hash":提取该提交修改的所有文件名
  • 内层while循环输出每个文件名与对应作者
  • sort -u:去重,确保同一个文件仅显示最后一次修改的作者

方法二:简化的文本处理方式

git log --since="2 days ago" --format="%an" --name-only | grep -v '^$' | awk 'NR%2{name=$0;next} {print $0, name}' | sort -u

命令说明

  • git log --since="2 days ago" --format="%an" --name-only:输出最近2天的提交作者及对应修改文件(空行分隔不同提交)
  • grep -v '^$':移除空行,简化后续处理
  • awk 'NR%2{name=$0;next} {print $0, name}':将奇数行的作者名与偶数行的文件名配对输出
  • sort -u:去重,保留文件最后修改的作者

示例输出

file1.php Alice
file2.php Bob

注意事项

  • 将命令中的"2 days ago"替换为"X days ago"即可获取最近X天的结果
  • 如果需要保留所有修改过该文件的作者,去掉sort -u即可,但会出现同一文件多条记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:38:19