git の author を最初の commit から修正する

1つ前の記事 を書いたときにサンプルの git リポジトリを作ったんですが、そのときに author の設定を間違えてしまっていて修正したので、修正方法をメモしておきます。

TL;DR

  1. git config --local user.name "[ユーザー名]"git config --local user.email "[メールアドレス]"
  2. git rebase -i --root して全 commit を edit する
  3. git commit --amend --reset-author
  4. git push -f

git rebase -i の時点で手動になるのでもっといい方法がありそう。 今回は 3 commit で終わったので手動で妥協しました。

author を修正する

git の author の情報(name, email)は git config --local user.name "[ユーザー名]" および git config --local user.email "[メールアドレス]" で修正できます。 --localリポジトリごとに、 --global でデフォルト設定を修正できます。

直前の commit の author を修正する

直前の commit の author は git commit --amend --reset-author で修正できます。 詳しくは以下のブログを参考にしてください。

yuzu441.hateblo.jp

過去の commit の author を修正する

git commit --amend では直前の commit しか修正できません。 そこで、 git rebase -i [commit hash] を用いて過去の commit を修正します。 こちらも詳しくは以下のブログを参考にしてください。

tech-1natsu.hatenablog.com

First commit まで rebase する

git rebase -i [commit hash] だと指定した commit hash の次の commit からしか操作できず、最初の commit を修正できません。 最初の commit を修正するには git rebase -i --root と指定すればいいです。 こちらも詳しくは以下のブログを参考にしてください。

ken-c-lo.hatenadiary.org

リモートリポジトリに反映する

修正した内容はリモートリポジトリにも反映させておきましょう。 git push -f と force push する必要があります。