git日志分组

Posted on 2025-06-05 15:19  云起  阅读(14)  评论(0)    收藏  举报

查看变更记录时,希望按日期分好组,以便跟踪功能变化

git log --date=short --pretty=format:"%cd|%h %s" --since="7 days ago" | sort | awk -F'|' '{a[$1]=a[$1] $2 "\n"} END {for (k in a) print "\n提交日期:"k"\n" a[k]}'
  1. 依赖git log,获取日志信息。通过--since,设定查询范围,避免日志过多。日期格式采用短型,固定长度并且方便后续排序。输出格式化时,添加分隔符,以便后续操作。
  2. 使用awk进行文本处理 https://www.runoob.com/linux/linux-comm-awk.html
    awk 'BEGIN { ... } 
         pattern1 { action1 } 
         pattern2 { action2 } 
         END { ... }'
    
    • 通过-F设定分割符号(避免使用git提交记录中会使用的字符,造成分割错误)。
    • 然后把分割信息放到关联数组中,用日期作为键,采用换行拼接
    • 使用for,遍历日期,格式化输出(我这里就是加了个日期标头)
  3. 如果要控制顺序的话,可以先对关联数组排序。for遍历关联数组的时候,使用的是键排序,可以使用sort或者asorti进行干预,控制输出顺序。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3