文章目录
根据输入统计信息
新建 test.bash 脚本文件,放到git项目根路径下
#!/bin/bash
# 判断输入参数数量是否正确
if [ $# -ne 3 ]; then
echo "Usage: $0 <date_range> <author_name> <branch_name>"
exit 1
fi
# 解析输入参数
DATE_RANGE=$1
AUTHOR=$2
BRANCH=$3
# 计算起始和截止日期
if [ "$DATE_RANGE" = "1" ]; then
# 昨天到今天的日期
START_DATE=$(date -d "yesterday" +%Y-%m-%d)
END_DATE=$(date -d "today" +%Y-%m-%d)
elif [ "$DATE_RANGE" = "2" ]; then
# 昨天到上个周四的日期
START_DATE=$(date -d "last Thursday" +%Y-%m-%d)
END_DATE=$(date -d "today" +%Y-%m-%d)
elif [ "$DATE_RANGE" = "3" ]; then
# 昨天到前两个周四的日期
START_DATE=$(date -d "last Thursday -7 days" +%Y-%m-%d)
END_DATE=$(date -d "today" +%Y-%m-%d)
else
echo "Invalid date range: $DATE_RANGE"
exit 1
fi
# 使用Git命令行获取指定日期范围和提交者的代码变更量
git log --author="$AUTHOR" --pretty=tformat: --numstat --since="$START_DATE" --until="$END_DATE" "$BRANCH" | awk '{add += $1; subs += $2; loc += $1 - $2} END {printf "Added lines: %s\nRemoved lines: %s\nTotal lines changed: %s\n", add, subs, loc}'
在 git 项目路径下打开 git bash 命令窗口,执行命令:
# 三个参数:日期,作者,分支
./test.bash 1 author master
统计每个提交者的代码量
#!/bin/bash
# 判断输入参数数量是否正确
if [ $# -ne 2 ]; then
echo "Usage: $0 <DATE_BEGIN> <DATE_BEGIN>"
exit 1
fi
# 解析输入参数
DATE_BEGIN=$1
DATE_END=$2
# 使用Git命令行获取每个提交者的代码变更量信息
git log --format='%aN' master | sort | uniq -c | sort -rn | while read count author; do
echo "Author: $author"
git log --author="$author" --pretty=tformat: --numstat --since="2024-$DATE_BEGIN" --until="2024-$DATE_END" "master" | awk '{add += $1; subs += $2; loc += $1 - $2} END {printf "Added lines: %s Removed lines: %s Total lines changed: %s ", add, subs, loc}'
echo
echo
done
使用:
./test.bash 03-07 03-13