批量修改歷史commit的使用者名稱user.name郵箱user.email
阿新 • • 發佈:2018-11-30
配置當前的使用者名稱郵箱可以當前專案配置或者全域性配置。
僅當前專案配置:
git config user.name 'your-user-name' git config user.email 'your-user-email'
全域性配置:
git config --global user.name 'your-user-name' git config --global user.email 'your-user-email'
新建shell指令碼 change-email-name.sh 內容如下:
#!/bin/sh git filter-branch --env-filter 'OLD_EMAIL="your-old-email" NEW_NAME="your-new-name" NEW_EMAIL="your-new-email" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$NEW_NAME" export GIT_COMMITTER_EMAIL="$NEW_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$NEW_NAME" export GIT_AUTHOR_EMAIL="$NEW_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
將指令碼放到專案根目錄下,執行指令碼:
./change-email-name.sh
如果執行失敗,執行以下程式碼後再執行指令碼:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
然後強行覆蓋倉庫
git push origin --force --all