批量修改GIT歷史用戶信息

批量解決已提交的GIT歷史用戶信息錯誤問題。

第一步:拉取代碼

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í)行一下這個.sh文件

./batch-git.sh

第四步:修改失敗處理方式

如果執(zhí)行失敗,執(zhí)行以下命令后再運行:

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

第五步:PUSH至遠程倉庫

把正確歷史 push到Git遠程倉庫:

git push --force --tags origin 'refs/heads/*'
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評論 9 163
  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學習之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 4,139評論 3 27
  • 一、基本概念: 注:對于git的分布式概念及其優(yōu)點,不重復說明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,558評論 0 3
  • (預警:因為詳細,所以行文有些長,新手邊看邊操作效果出乎你的預料) 一:Git是什么? Git是目前世界上最先進的...
    axiaochao閱讀 2,007評論 1 8
  • 車鏈啟示 夏季 午后 雨初過 想去逛街 準備騎車 但棄置太久 鏈條早已生銹 忽然想起老同學 打個電話 表示問候 ...
    莫須有V閱讀 324評論 0 2

友情鏈接更多精彩內(nèi)容