统计git代码行数:
git log --since=2022-01-01 --until=2022-04-01 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since=2022-01-01 --until=2022-04-01 --pretty=tformat: --numstat -p -- . ':(exclude)yarn.lock' ':(exclude)package-lock.json' ':(exclude)pnpm-lock.yaml' ':(exclude)eslint' ':(exclude)mock/' ':(exclude)Demo' ':(exclude)flex*' | awk '{add+=($1 ~ /^[0-9]+$/ ? $1 : 0);}END{printf "added lines: %s\n",add}'; done
git log --since=2022-01-01 --until=2022-04-01 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since=2022-01-01 --until=2022-04-01 --pretty=tformat: --numstat -p -- . ':(exclude)yarn.lock' ':(exclude)package-lock.json' ':(exclude)pnpm-lock.yaml' ':(exclude)*eslint*' ':(exclude)mock/*' ':(exclude)*Demo*' ':(exclude)*flex*' | awk '{add+=($1 ~ /^[0-9]+$/ ? $1 : 0);}END{printf "added lines: %s\n",add}'; done
详细统计(到文件名):
git log --since=2022-01-01 --until=2022-04-01 --format='%aN' | sort -u | while read name; do echo -en "\n\n$name\n"; git log --author="$name" --since=2022-01-01 --until=2022-04-01 --pretty=tformat: --numstat -- . ':(exclude)yarn.lock' ':(exclude)package-lock.json' ':(exclude)pnpm-lock.yaml' ':(exclude)eslint' ':(exclude)mock/' ':(exclude)Demo' ':(exclude)flex*'; done > line.txt
git log --since=2022-01-01 --until=2022-04-01 --format='%aN' | sort -u | while read name; do echo -en "\n\n$name\n"; git log --author="$name" --since=2022-01-01 --until=2022-04-01 --pretty=tformat: --numstat -- . ':(exclude)yarn.lock' ':(exclude)package-lock.json' ':(exclude)pnpm-lock.yaml' ':(exclude)*eslint*' ':(exclude)mock/*' ':(exclude)*Demo*' ':(exclude)*flex*'; done > line.txt