修改GIT已提交的用戶名和郵箱


修改GIT已提交的用戶名和郵箱

原文:https://help.github.com/en/github/using-git/changing-author-info

說明

要更改在現有提交中記錄的名稱和/或電子郵件地址,必須重寫Git存儲庫的整個歷史。

警告:此操作會破壞存儲庫的歷史記錄。如果您正在與其他人協作創建存儲庫,則重寫已發布的歷史記錄被認為是不好的做法。你應該只在緊急情況下這樣做。

使用腳本更改存儲庫的Git歷史記錄

使用下面的腳本,更改已提交數據的author或committer。

操作步驟:

  1. 打開Linux Terminal(終端),如果是WIndow系統打開 Git Bash。
  2. 創建一個你的 repo 的全新裸 clone (repo.git 替換為實際項目)
git clone --bare https://github.com/user/repo.git
cd repo.git
  1. 復制並粘貼腳本,根據實際情況替換以下變量:
    OLD_EMAIL 要替換的舊郵箱
    CORRECT_NAME 當前用戶名
    CORRECT_EMAIL 當前郵箱
    腳本:
#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"

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
  1. 按 Enter 執行腳本。
  2. 查看新 Git 歷史有沒有錯誤。
  3. 把正確歷史 push 到 Github :
git push --force --tags origin 'refs/heads/*'
  1. 清理臨時clone:
cd ..
rm -rf repo.git


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM