0
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?

git rebaseでコミット履歴を自由自在に編集しよう🎉

Last updated at Posted at 2025-03-20

🎉 Git初心者でも安心!git rebase -iでコミット履歴を自由自在に編集しよう!

こんにちは、Git好きのみなさん!
今回はGitの超便利コマンド git rebase -i(インタラクティブリベース)を楽しく学んでいきますよー!

「昔のコミットの内容を修正したい!」とか、「コミットを整理して綺麗にしたい!」と思ったことはありませんか?
そんなときに大活躍するのがこの git rebase -i なんです✨

この記事では、メリットやデメリットも紹介していきます!
それでは一緒にやってみましょう♪

🌟 git rebase -i のメリット・デメリット

メリット
• ✅ コミット履歴をキレイに整えられる!
不要なコミットや間違えたコミットを修正・削除できるので、履歴がスッキリ!
• ✅ コードレビューがしやすくなる!
履歴が整理されていると、他の人も変更内容を理解しやすいです。
• ✅ コミットをまとめてわかりやすく整理できる!
小さい変更を一つにまとめたり、コミットを分割することができます。

デメリット
• ⚠️ 履歴が書き換わるため、チームとの共有ブランチでは使いづらい
リモートにすでにプッシュした履歴を書き換えると、他のメンバーに影響が出る可能性があります。
• ⚠️ 操作を間違えるとコミットを失うリスクがある
ただし、git rebase --abort で元の状態に戻せますので安心してくださいね!

以上を踏まえた上で、実際に使ってみましょう🎈

📌 サンプルのコミット履歴を用意しました

まずは、こんなコミット履歴があるとします。

$ git log --oneline

5ce576e 5
30ff21a 4
95eaecd 3
adb04d8 2
29102b1 1

💡 rebase -i の基本の使い方

例えば、3つ前のコミット(95eaecd 3)を修正したい場合は、

$ git rebase -i adb04d8

または、もっと簡単にコミット数を指定して、

$ git rebase -i HEAD~3

これでエディタが立ち上がり、こんな感じの画面が表示されます👇

pick 95eaecd 3
pick 30ff21a 4
pick 5ce576e 5
# Commands:
#  p, pick   = コミットをそのまま使う
#  r, reword = コミットメッセージのみ変更
#  e, edit   = コミット内容を修正
#  s, squash = 前のコミットとまとめてメッセージを変更
#  f, fixup  = 前のコミットとまとめてメッセージをそのまま使用
#  x, exec   = shellコマンドを実行

この中のpickという部分を他のコマンドに書き換えることで、コミットを編集できます✨

🚀 reword でコミットメッセージを変更する

コミットメッセージだけを変更したいときは reword が便利!

reword 95eaecd 3
pick 30ff21a 4
pick 5ce576e 5

保存すると再びエディタが開き、メッセージを変更できます。
例えば「3」を「3A」に変更して保存すると完了!

🛠 edit でコミットの中身を修正する

コミットの中身を変更したい場合は edit を使います。

edit 95eaecd 3
pick 30ff21a 4
pick 5ce576e 5

保存すると修正したいコミット直後の状態に戻ります。
修正後に以下のように操作します。

# コミットを修正する場合
$ git add .
$ git commit --amend
# コミットを細かく分割するなど、大きく変更する場合
$ git reset HEAD^
$ git add .
$ git commit --amend

修正が完了したら以下で rebase を再開!

$ git rebase --continue

もし途中でやめたくなったら👇で中止できますよ。

$ git rebase --abort

🥞 squash で複数のコミットを1つにまとめる

コミットを1つにまとめたいときは squash の出番です!

pick 95eaecd 3
squash 30ff21a 4
pick 5ce576e 5

保存すると再びエディタが立ち上がるので、新しいコミットメッセージを入力して保存するとまとめられます!

🧹 fixup でコミットをまとめてメッセージを維持

コミットをまとめてメッセージもそのまま使いたい場合は fixup が便利です。

pick 95eaecd 3
fixup 30ff21a 4
pick 5ce576e 5

これでコミット4はコミット3に吸収され、メッセージは3のまま残ります!

🔄 コミットの順番を入れ替える

コミットの順番を入れ替えたい場合は、並べ替えるだけでOK!

pick 30ff21a 4
pick 95eaecd 3
pick 5ce576e 5

簡単でわかりやすいですね😆

❌ コミットを削除する

コミットを削除したい場合は、単純に該当のコミットを削除します。

pick 95eaecd 3
- pick 30ff21a 4  # 削除したい行
pick 5ce576e 5

保存するとコミット4は削除されます!

📝 まとめ

git rebase -i をマスターすると、コミット履歴がキレイに整理でき、プロジェクトのメンバーにも見やすい履歴を作れますね✨

ぜひいろんなプロジェクトで活用してみてくださいね〜🌈

最後に

この記事が役に立ったら、ぜひ「LGTM」してくれると嬉しいです! 💖
では、また次回の記事でお会いしましょう👋

0
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
0
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?