如何统计Git分支上从最后一次提交往前推3个月的提交数量
可以用单条复合命令实现,依赖shell的命令替换特性即可将两次Git调用合并为一条可直接执行的语句:
git shortlog -sn --since="$(git log -1 --format=%cd <branch> --date=format:'%Y-%m-%d') 3 months ago" <branch>
命令原理
- 内层
git log -1 --format=%cd <branch> --date=format:'%Y-%m-%d'会先获取指定分支最后一次提交的日期,输出为标准化的年-月-日格式 - 外层
--since参数会将拿到的最后提交日期拼接「3 months ago」,自动计算出3个月前的时间节点作为统计起始点 - 如果你使用的是Linux/macOS终端、Git Bash、WSL等支持bash语法的环境,直接执行上述单条语句即可。如果是原生Windows CMD/PowerShell环境,不支持
$()形式的命令替换,才需要分两次执行:先调用git log拿到最后提交日期存为变量,再传给git shortlog的--since参数。
内容的提问来源于stack exchange,提问作者sschuberth
相关产品推荐
相关产品推荐

