如何通过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
相关产品推荐
相关产品推荐

