#!/bin/bash
#git 分支
git_branch=$1
#获取git提交开始时间
date_star="$2 00:00:01"
#获取git提交结束时间
date_end="$3 23:59:59"
#获取git项目路径
git_path=$4
#保存结果文件
print_path=$5
path1=`find $git_path -name "*.git"`
echo '' > $print_path
path_arr=($path1)
for path in ${path_arr[@]}
do
echo "cd $path"
cd $path
user1=`git log --pretty='%aN' | sort | uniq `
user_arr=($user1)
for user in ${user_arr[@]}
do
git_log_res=`git log $git_branch --author=$user --since="$date_star" --until="$date_end" --pretty=tformat: --numstat | gawk '{ add += \$1 ; subs += \$2 ; loc += \$1 - \$2 } END { printf "addRow: %s delRow: %s totalRow: %s\n",add,subs,loc }'`
echo $path $user $git_log_res >> $print_path
done
done
执行命令
./git_code_statistics.sh dev 2022-01-01 2022-01-30 /data/testg/项目路径/ /data/testg/total.txt