修改git提交记录的用户名和邮箱

193 阅读1分钟

因为本地的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