GitのCommitユーザを変更した話

ことの発端

お仕事で、Git使っていて、SourceTreeでコミット等していたのですが、誤ったアカウント名、アカウントメールアドレスでコミットしていたことに気づきました。

複数のアカウントを使っていて切り替えを忘れていました。。。
このままでは、まずいなと思って、対応方法を検索して実施しました。

※強制オプションを使っていたりするので、実行にはご注意ください。

修正するためのコマンドや流れ

$ git filter-branch -f --commit-filter '
  if [ "$GIT_COMMITTER_EMAIL" = "old@mail.com" ];
    then
        GIT_COMMITTER_NAME="new committer name";
        GIT_AUTHOR_NAME="new author name";
        GIT_COMMITTER_EMAIL="correct@mail.com";
        GIT_AUTHOR_EMAIL="correct@mail.com";
        git commit-tree "$@";
    else
        git commit-tree "$@";
    fi'  HEAD

自分がやった際は、自分以外のコミッターが少なかったので、if文は否定マッチ(!=)で行いました。

上記の実行が終わったあとにプッシュして反映させます。

$ git push -f

※繰り返しですが、force push(強制)なので注意!
--force-with-leaseを使うのもお勧めしている記事もみました。

参考

GitのCommitユーザを修正する方法

コメント

タイトルとURLをコピーしました