Update Semua Git Commit Author Name & Email

  1. Buat bash script dengan konten berikut
echo "Enter Old Email address: "
read OLD_EMAIL
echo "Enter new Email Address: "
read CORRECT_EMAIL
echo "Enter new user name (First name + Last Name): "
read CORRECT_NAME

env_filter="
OLD_EMAIL=\"$OLD_EMAIL\"
CORRECT_NAME=\"$CORRECT_NAME\"
CORRECT_EMAIL=\"$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
"

git filter-branch --env-filter "$env_filter" --tag-name-filter cat -- --branches --tags

rm -rf .git/refs/original/refs/*/*
  1. Hapus duplikat backup history bernama “original” yang dibuat setelah menjalankan script
git update-ref -d refs/original/refs/heads/master
  1. Cek apakah .git/refs/original kosong, hapus folder jika kosong.
rm -rf .git/refs/original
  1. Cek dan verifikasi log yang sudah diupdate
git log --pretty=format:"[%h] %cd - Committer: %cn (%ce), Author: %an (%ae)"
  1. Force push
git push --force --tags origin HEAD:master

Referensi: