因为本地的git设置与仓库中的用户名与邮箱信息不一致,导致代码无法被统计,所以需要修改提交记录中的用户名和邮箱。
1.使用时记得替换xxx为自己的使用的信息
git filter-branch -f --env-filter '
OLD_EMAIL="byd"
CORRECT_NAME="xxx"
CORRECT_EMAIL="xxx@xx.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
2.将修改推送到仓库
git push origin --force --all
统计每个人的代码行数(仅供参考,可加其他参数进行限制)
git log --format='%aN' | sort -u | while read name; do
echo -en "$name\t";
git log --author="$name" --pretty=tformat: --numstat |
awk '{ add += $1; subs += $2; loc += $1 - $2 }
END { printf "added: %s, removed: %s, total: %s\n", add, subs, loc }'
done