movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

Gitでcommitをきれいにまとめたいときのステップ

タイポなどコミットコメントを残したくないコミットの場合はコミットを1つにまとめたほうがコミットがきれいになる。

雑なステップ

  1. git log --oneline
  2. git rebase -i HEAD~2
  3. 消したい方をpick→ squashに変更して保存
  4. 消したいコミットメッセージを消去して保存
  5. git push -f origin Branch name
1. git log --oneline

ログ履歴を見て対象のコミットを確認する

2. git rebase -i HEAD~2

直近2つのコミットをテキストエディタで開きます(勝手に開く)

3. 消したい方をpick→ squashに変更して保存

git rebaseすると勝手にエディタが開くので修正して保存する

4. 消したいコミットメッセージを消去して保存

2つ分のコミットメッセージが表示されるので消去した メッセージを消去して保存する

5. git push -f origin Branch name

リモートの歴史の書き換えが問題ない状況の時は、強制的にリモートで書き換えるがコミットの歴史が変わるので注意が必要。 もし2つのコミットともにpushしてない場合は-fはなくてもいいのかも。試してない。

参考: 複数のコミットを1つにまとめる方法 | DevelopersIO

git rebase -i でコミットをまとめて履歴を綺麗にしよう! | WWWクリエイターズ