批量解決已提交的GIT歷史用戶信息錯(cuò)誤問題窗市。
第一步:拉取代碼
git clone --bare https://github.com/user/repo.git
cd repo.git
第二步:創(chuàng)建腳本
touch batch-git.sh
chmod 777 batch-git.sh
腳本內(nèi)容如下:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="<需要修改的郵箱地址>"
CORRECT_NAME="<修改后的用戶名>"
CORRECT_EMAIL="<修改用的郵箱地址>"
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ù)
把OLD_EMAIL
咨察、CORRECT_NAME
、CORRECT_EMAIL
改成自己的新舊郵箱用戶名即可脓诡,然后我們來執(zhí)行一下這個(gè).sh文件
./batch-git.sh
第四步:修改失敗處理方式
如果執(zhí)行失敗媒役,執(zhí)行以下命令后再運(yùn)行:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
第五步:PUSH至遠(yuǎn)程倉庫
把正確歷史 push到Git遠(yuǎn)程倉庫:
git push --force --tags origin 'refs/heads/*'