公司git升級,導(dǎo)致原用戶名不可用,本地的幾次提交無法push代碼,報錯姓名不符合規(guī)范
第一種方法
合并以往的請求成一個請求
1、首先需要全局修改用戶名
git config --global user.name "新的用戶名"
2、將本地的提交歷史撤銷,重新提交即可。以下為撤銷最近5次的提交,最近5次的修改代碼變?yōu)橐褧捍妫峤缓蠹纯沙晒ush
git reset --soft HEAD~5
第二種方法
腳本處理,在git倉庫根目錄下創(chuàng)建rename.sh文件
rename.sh
#!/bin/sh
#更改提交中所有郵箱為OLD_EMAIL或用戶名為OLD_NAME的為新的用戶名和新的郵箱,注釋部分的可以變更郵箱
# CORRECT_EMAIL="your-correct-email@example.com"
# OLD_EMAIL="yo.com"
# export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
# export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
git filter-branch --env-filter '
OLD_NAME="WB0000001"
CORRECT_NAME="gaowj"
if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
fi
' -f --tag-name-filter cat -- --branches --tags #-f為強行覆蓋
#取消下面的#注釋,將自動強行推送所有修改到主分支
#git push origin master --force
輸入./rename.sh回車即可
如果 Permission denied,給權(quán)限sudo chmod 777 rename.sh,然后重新執(zhí)行即可