1. 程式人生 > >批量修改歷史commit的使用者名稱user.name郵箱user.email

批量修改歷史commit的使用者名稱user.name郵箱user.email

配置當前的使用者名稱郵箱可以當前專案配置或者全域性配置。

僅當前專案配置:

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