背景:需要统计某个项目开发提交了多少次;
当然最笨的方法就是直接数,但显得不优雅,如果尝试写个脚本来统计;
大致思路:
git log 可以查所有的提交记录,然后通过grep筛选出所有的commit id,入参输入两个commit id,获取对应的commit id的位置,进行相减便可以得到多少次
shell脚本如下:
#!/bin/bash
f1="$1*"
f2="$2*"
echo "第一个版本:"$f1
echo "第二个版本:"$f2
git log | grep "commit [0-9a-zA-Z]\{40\}" | awk 'BEGIN{count=0;} {commit[count]=$2;count++;} END{for(i=0;i<NR;i++) print i,commit[i]}' | grep -E "$f1|$f2" > result
LineNum=`awk 'END {print NR}' ./result`
if [ $LineNum -lt 2 ];then
echo "版本号输入错误,请检查输入的版本号"
else
num=`awk 'BEGIN{count=0;} {num[count]=$1;count++;} END{print sqrt((num[0]-num[1])*(num[0]-num[1]))+1}' ./result`
echo "相差"$num"个版本"
fi