git 统计代码量 shell脚本

本文介绍了一个用于统计Git仓库中代码提交情况的bash脚本,包括按日期范围和作者统计新增、删除及总代码行数。该脚本适用于项目管理和代码审查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
# 统计代码量
# 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKong" ~/workspace/IDEA/项目名/
# 开始时间
startTime=`date -j -f "%Y-%m-%d" $1 +%s`
# 结束时间
endTime=`date -j -f "%Y-%m-%d" $2 +%s`
# 提交代码作者
author=$3
# 项目绝对路径
path=$4||'.'

internalDay=$((($endTime-$startTime)/60/60/24 + 1))
echo "统计总天数:"$internalDay ""

cd $path

preTime=$startTime
nextTime=$startTime
echo "提交者 $3: " 
for (( i=1;i<=$internalDay;i++));do
    temp=$nextTime
    nextTime=`date -r $(( $nextTime + 86400)) +%s`
    preTime=$temp
    echo `date -r $preTime +"%Y%m%d"` - `date -r $nextTime +"%Y%m%d" ` ": \c"
    git log --since=$preTime --until=$nextTime  --author=$3 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %-15s   |   removed lines: %-15s   |   total lines: %-15s\n", add, subs, loc }'    
done
echo 
echo
echo "汇总:\c"
git log --since=$1  --until=$2 --author=$3 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %-15s   |   removed lines: %-15s   |   total lines: %-15s\n", add, subs, loc }'    
echo

 

 

统计结果:

 

转载于:https://www.cnblogs.com/JamKong/p/8231022.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值