Tips

直近3つのコミットを整理する場合

`git rebase -i`(インタラクティブリベース)は、コミット履歴をきれいに整理するための強力なコマンドです。複数のコミットを一つにまとめたり、コミットメッセージを修正したり、コミットの順序を変更したりすることで、より分かりやすい履歴を作成できます。

Git

git rebase -i(インタラクティブリベース)は、コミット履歴をきれいに整理するための強力なコマンドです。複数のコミットを一つにまとめたり、コミットメッセージを修正したり、コミットの順序を変更したりすることで、より分かりやすい履歴を作成できます。

コミット履歴を綺麗に整理する git rebase -i 開発中に発生した細かな修正コミットや、複数のコミットを論理的な単位にまとめたい場合などに、git rebase -iは非常に役立ちます。これにより、レビューアが理解しやすい、クリーンで簡潔なコミット履歴を構築できます。

# 直近3つのコミットを整理する場合
git rebase -i HEAD~3

# 特定のコミット(例えば feature ブランチの基点)までを整理する場合
# <commit-hash-or-branch-name-before-target> は、整理を開始したいコミットの「一つ前」を指定
git rebase -i <commit-hash-or-branch-name-before-target>

上記コマンド実行後、エディタが開かれ、各コミットに対して以下のような操作を指示できます。

  • p (pick): コミットをそのまま使用する
  • r (reword): コミットメッセージを修正する
  • e (edit): コミット内容を修正するため一時停止する
  • s (squash): 直前のコミットと結合する(メッセージも結合)
  • f (fixup): 直前のコミットと結合する(メッセージは破棄)
  • d (drop): コミットを削除する

注意点やおすすめポイント

  • 注意点: git rebaseはコミットハッシュを変更するため、既にリモートリポジトリにプッシュされている共有ブランチやメインブランチに対しては使用しないでください。他の開発者の作業と衝突する可能性があります。基本的に、まだプッシュしていないローカルブランチや、自分専用の作業ブランチに対してのみ使用するのが安全です。
  • おすすめポイント: プルリクエストを出す前に、自分のブランチのコミット履歴を論理的な単位に整理することで、コードレビューが格段にしやすくなり、レビューアからの評価も上がります。squashfixupで細かな修正をまとめ、rewordで適切なコミットメッセージに直すのが基本的な使い方です。