高度なGit履歴編集:コミットの修正とインタラクティブ・リベース
`git commit --amend`や`git rebase -i`といった強力なGitコマンドを駆使して、コミットメッセージの修正、コミットの統合(スカッシュ)、プロジェクト履歴の整理を行う方法を解説します。
Gitの履歴をきれいに保つことは、プロジェクトの可読性を高め、チーム開発を円滑にするために非常に重要です。本記事では、履歴を修正するための強力なツールであるgit commit --amendとgit rebase -iの使い方を解説します。
1. 直前のコミットを修正する: git commit --amend
直前のコミットメッセージを書き換えたい場合や、コミットし忘れたファイルを追加したい場合に便利です。
# ステージングした変更を直前のコミットに追加する
git add .
git commit --amend --no-edit
--no-editフラグを使うと、コミットメッセージを変更せずに内容だけを更新できます。
2. 履歴を整理する: git rebase -i
インタラクティブ・リベースを使用すると、過去の複数のコミットをまとめたり、メッセージを書き換えたり、不要なコミットを削除したりできます。
# 直近3つのコミットを編集対象にする
git rebase -i HEAD~3
コマンドを実行するとエディタが開き、各コミットに対して以下のような操作を選択できます:
pick: そのまま使用するsquash(s): 前のコミットと統合するreword(r): コミットメッセージのみを書き換えるdrop(d): コミットを削除する
注意点
これらの操作は公開済みのブランチ(リモートにプッシュ済みの履歴)に対しては絶対に行わないでください。履歴の改変は他の開発者の作業に混乱を招く可能性があります。必ずローカル環境での作業に限定しましょう。