如何获取Git仓库中每位用户的最后提交时间?
获取Git仓库所有用户的最后提交时间
当然可以实现,你可以通过结合git log和awk命令来批量提取并整理所有用户的最新提交时间,刚好匹配你要的输出格式:
git log --format='%aN %ad' --date='format:%b %d' | awk '{if (!seen[$1] || $2" "$3 > seen[$1]) seen[$1] = $2" "$3} END {for (user in seen) print user, seen[$1]}'
命令说明:
git log --format='%aN %ad' --date='format:%b %d':%aN提取提交者的名称;%ad配合--date='format:%b %d',将日期格式化为「月份缩写 日期」(比如Nov 22),和你给出的示例格式一致。
awk脚本:- 用数组
seen跟踪每个用户的最新提交日期,遍历所有提交记录时,若用户未被记录,或者当前提交日期比已记录的更新,就更新该用户的最新日期; - 最后遍历数组,输出每个用户和对应的最新提交时间。
- 用数组
如果需要按提交日期排序输出,可以在命令末尾加上排序逻辑:
git log --format='%aN %ad' --date='format:%b %d' | awk '{if (!seen[$1] || $2" "$3 > seen[$1]) seen[$1] = $2" "$3} END {for (user in seen) print user, seen[$1]}' | sort -k2,3M
这里sort -k2,3M会按月份名称(比如Jan、Feb)和日期排序,让输出更规整。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

