背景:需要統(tǒng)計(jì)某個(gè)項(xiàng)目開發(fā)提交了多少次应闯;
當(dāng)然最笨的方法就是直接數(shù)纤控,但顯得不優(yōu)雅,如果嘗試寫個(gè)腳本來統(tǒng)計(jì)碉纺;
大致思路:
git log 可以查所有的提交記錄船万,然后通過grep篩選出所有的commit id,入?yún)⑤斎雰蓚€(gè)commit id骨田,獲取對(duì)應(yīng)的commit id的位置耿导,進(jìn)行相減便可以得到多少次
shell腳本如下:
#!/bin/bash
f1="$1*"
f2="$2*"
echo "第一個(gè)版本:"$f1
echo "第二個(gè)版本:"$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 "版本號(hào)輸入錯(cuò)誤,請(qǐng)檢查輸入的版本號(hào)"
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"個(gè)版本"
fi