gitで過去の全てのコミットの Commit Author と Committer を変更する

プロジェクトを進める中で、しばらく経ってから違うユーザとしてコミット・プッシュしていたことに気付きました。 自分しかコミット・プッシュしていない上にそのプロジェクトは最初から最後まで首尾一貫して意図していたのと違うユーザでコミット・プッシュしていたので、全て一括で変更したくなりました。 ということで、以下手順。
  1. git cloneでリポジトリをローカルにクローン
  2. 次のコマンドを実行
    • git filter-branch -f --env-filter "GIT_AUTHOR_NAME='<USERNAME>'; GIT_AUTHOR_EMAIL='<hoge@example.com>'; GIT_COMMITTER_NAME='<USERNAME>'; GIT_COMMITTER_EMAIL='<hoge@example.com>';" HEAD
      • <USERNAME><hoge@example.com>は実際の表示ユーザ名・メールアドレスに変更すること(変更の際に<>は不要)
  3. git cloneしたリモートリポジトリを削除し、新しいリポジトリを登録
  4. 普通にプッシュ
これでうまく行きました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。