如何将Git单分支提交人信息修改为?

摘要:前提: 把指定分支中,指定的错误邮箱或名称,替换为正确的值 1. 确定一定要是分支(如果存在tag与分支同名时,修改分支时,先不要切tag出来,否则后面push数据,git会因为同名匹配多个,导致无法正确push) git checkout
前提:   把指定分支中,指定的错误邮箱或名称,替换为正确的值 1. 确定一定要是分支(如果存在tag与分支同名时,修改分支时,先不要切tag出来,否则后面push数据,git会因为同名匹配多个,导致无法正确push) git checkout -b xxxx 注意,这个分支的代码,需要是最新的,需要pull 2. 替换(使用noreply,是因为个人邮箱是隐藏的,如果你的邮箱并不是隐藏的,则可以直接设定自己的真实邮箱) git filter-branch -f --env-filter ' NEW_NAME="新名字" NEW_EMAIL="XXX新名字@users.noreply.github.com" if [ "$GIT_AUTHOR_NAME" = "旧名字" ] || [ "$GIT_AUTHOR_NAME" = "旧名字1" ] || [ "$GIT_AUTHOR_NAME" = "旧名字2" ]; then export GIT_AUTHOR_NAME="$NEW_NAME" export GIT_AUTHOR_EMAIL="$NEW_EMAIL" export GIT_COMMITTER_NAME="$NEW_NAME" export GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi ' -- 分支名 或者需要依据邮箱名作过滤调整 git filter-branch -f --env-filter ' NEW_NAME="新名字" NEW_EMAIL="XXX新名字@users.noreply.github.com" if [ "$GIT_AUTHOR_EMAIL" = "旧邮箱" ] || [ "$GIT_AUTHOR_EMAIL" = "旧邮箱1" ] || [ "$GIT_AUTHOR_EMAIL" = "旧邮箱2" ] || [ "$GIT_AUTHOR_NAME" = "旧名字" ]; then export GIT_AUTHOR_NAME="$NEW_NAME" export GIT_AUTHOR_EMAIL="$NEW_EMAIL" export GIT_COMMITTER_NAME="$NEW_NAME" export GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi ' -- 分支名 3. 验证结果(查看最近15笔记录/查询去重后的用户名&邮箱) git log 分支名 --pretty=format:"%h - %ad - %an <%ae> - %s" --date=short -15 git log 分支名 --pretty=format:"%an <%ae>" | Get-Unique 4. 强制推送 git push origin 分支名 --force