LoginSignup
2
3

More than 5 years have passed since last update.

Gitのコミットログを修正する方法

Last updated at Posted at 2018-06-30

はじめに

Gitのマイナス面として、SubVersionに比べてコミットログの編集がしにくいというのを耳にしたことがあります。コミットログをやり直したいと思う場面は意外と多いはずなので、確認したいと思います。

【case1】直前のコミットの修正

amend.png

> git commit --amend

エディタで前のコミットログが開くので編集します。
もしくは直接コマンドにコメントを入れます。

> git commit --amend -m "新しいコメント"

簡単でしたね。

> git rebase -i HEAD~

次のパターンと同じrebase -iを使った、こちらでも同じことができます。

> git reset --soft HEAD~

リセットを使ってコミット前に戻してしまう方法もあります。コミットしなおして完了です。

【case2】ふたつ前のコミットを修正

reword.png

> git rebase -i HEAD~2

reword 5549b30 add d
pick 07af2cf del mistake

変更したいコミットログの行をpickからrewordに変更します。保存すると、エディタに既存のコミットメッセージが表示されるので編集して保存します。(複数変更時は複数回繰り返す)

【case3】ひとつ前のコミットログを消す

squash.png

意外とやりたい場面が多いのがこのパターン。いわゆる凡ミスの修正です。誤字修正、スペルミス、バージョン変更忘れ、コメント修正など・・・。修正自体は保持してコミットメッセージだけを消したい場合です。

> git rebase -i HEAD~2

pick 546f109 finish
squash 2cd5de3 del mistake

削除したいログdel mistakeの方をsquashにします。既存のメッセージ内容がエディタが開きます。初期状態では両方のメッセージが含まれているので、del mistakeを削除してfihishだけ残して保存します。必要なければそのまま終了します。これでfinishだけがログに残り、squashした方のコミット内容もそこに含まれます。

まとめ

修正自体は簡単にできる桃の、新たにコミットを行って履歴を改変しているので影響範囲が気になるところ。とはいえGitを使っていく上で、こういった修正作業で作業が止まらないように準備しておきたいですね。

2
3
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
2
3