gitログのauthorとcommiterをまとめて修正する

eye catch image

誤ったアカウントでgitコミット/プッシュしてしまい、ログ修正に対応した。 日本語のサイトで情報をあまり見かけなかったので、備忘も兼ねて。 経緯 リポジトリによって2つのGitアカウントを使い分けていた 誤ったアカウントでリポジトリに大量にコミットしていたことに気付く 過去ログまで遡って全てのコミッタ情報を修正したいが日本語でコレという情報がなかなか見つからない 方法 ターミナルを開く(Windowsの場合はgit bashでおk) 対象リポジトリのルートディレクトリに移動 vi等で下記シェルスクリプトを作成 #!/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 ‘ –force –tag-name-filter cat — –branches –tags ※“your-old-email@example.com” は「このアドレスにマッチしたら」の条件になるので、修正前の誤ったアドレスで上書きしてください ※“Your Correct …