git批量修改push到远程的用户和作者信息


git通过命令可以配置本地用户名和邮箱

git config user.name 用户名
git config user.email 邮箱

查看本地用户名和邮箱

git config user.name
git config user.email

修改已经push到远程的用户名和邮箱

#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="yy_z3em@163.com"
CORRECT_NAME="xxxcxy"
CORRECT_EMAIL="yy_z3em@163.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

执行脚本之前先更新代码。

创建一个sh脚本,把上面命令粘贴到脚本里面,然后执行sh脚本。

如果执行失败,需要删除 .git/refs/original目录。

执行更新命令

git pull --rebase

然后再重新执行修改用户名的脚本

 

脚本执行成功之后,提交代码到远程git仓库。

git push origin --force --all

到远程git仓库查看提交记录,提交人名字都修改了。

批量修改push到远程的用户和作者信息结束。

----------

----------

----------

 

修改全部的提交记录。

#!/bin/sh

git filter-branch --env-filter '
CORRECT_NAME="xxxcxy"
CORRECT_EMAIL="yy_z3em@163.com"
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
' --tag-name-filter cat -- --branches --tags

以上脚本慎用,会把所有的提交记录都修改。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM