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