🐈

過去にコミットしたAuthorとCommit情報を変更する方法(rebase)

2021/01/31に公開約900字

はじめに

過去にコミット(すでにPushした場合も含む)したAuthorとCommitの情報(Emailアドレスや表示名前など)を変更したい場合の手順をまとめています。

.gitconfigファイルの修正

ユーザ名やメールアドレスなどを正しく修正します。

リベースする

コミットIDを調べる

修正したいコミットのコミットIDを調べ、そのコミットID以降をリベースします。

リベースを開始する

$ git rebase -i <修正したいコミットの一つ前のコミットIDを指定>

上記コマンドを実行すると、エディタが表示されます。指定したコミットID以降のコミット情報が上から古い順に表示されているはずですので、
その該当コミットIDの部分をeditに変更し、セーブしてエディタを閉じます。

Author/Commitの情報を変更する

$ git commit --amend --reset-author

リベースを実施

場合によってはこの部分が一番面倒です。特に問題がなければ以下のコマンドを実行して終了ですが、リベースポイント(対象コミット)以降のコミットに対して、それ以降にやったマージ作業がローカルで実施されるため、仮に過去にコンフリクトが発生して手動マージしていた場合には、同様の作業を最新の所まで再実施する必要があります。これがとても面倒です。コンフリクトによりエラーが発生した場合、コンフリクトを解消し、$ git add 該当ファイルを行い、再度以下のコマンドを実行します。

$ git rebase --continue

確認

git logコマンドでAuthor/Commitの情報が変更されていることを確認します。

コミット

すでにPush済の場合は、以下のコマンドを実行する必要があります。

$ git push -f

リファレンス

Discussion

ログインするとコメントできます