1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gitで名前を間違えたまま何回かコミットしてしまったログを修正する

Last updated at Posted at 2021-03-04

事象

新しいPCになって最初のコミットの際に、コミッタの名前とメールアドレスがPCのユーザ名とホスト名になっていたことに(警告が出ていたのにも関わらず)気付かないまま何度かコミットをしてしまった。
個人利用のリポジトリだがログが残るのが気持ち悪いため、修正する。

名前、メールアドレスの修正

Gitの設定情報を正しい内容に修正する。

$ git config --global --edit

viが起動するため、以下のように追記してesc + :wq

# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
#       name = XX YY
#       email = xxyy@xxyy.local
name=mamfrog                 <-- 追記
email=mamfrog@dummy.jp       <-- 追記

コミットを修正

修正したいコミットが何個前のコミットなのかをログで確認する。

$ git log

二つ前のコミットを修正する場合、以下を実行する。
(三つ前ならHEAD~3となる。コミットIDを直接指定してもOK)

$ git rebase -i HEAD~2

※この時error: cannot rebase: You have unstaged changes.といったエラーが発生した場合、コミットしていない変更があるため、コミットまたはスタッシュしておく。

viが起動するため、対象のコミットの先頭のpickeditと書き換えてesc + :wq

pick 9cbd3f9 二つ前のコミットメッセージ
pick 7d136e8 一つ前のコミットメッセージ

# Rebase fedede1..7d136e8 onto fedede1 (2 commands)
(以下略)

対象のコミットがチェックアウトされた状態になるため、コミッタの修正コミットを行う。

$ git commit --amend --reset-author

修正が終わったので、リベース完了する。

$ git rebase --continue

再度git logしてコミッタが修正されたことを確認。

補足

一つ前のコミットだけを修正する場合はリベース不要。
Gitの設定情報を修正後、以下を実行すればOK。

$ git commit --amend --reset-author

参考

6. rebase -i でコミットを修正する|サル先生のGit入門【プロジェクト管理ツールBacklog】

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?