Git

Git rebase入門|履歴を整理して綺麗に保つ

Gitrebase履歴整理

Git rebase入門
履歴を整理して綺麗に保つ

git rebaseの基本的な使い方、mergeとの違い、注意点を解説します。

こんな人向けの記事です

  • コミット履歴を綺麗に保ちたい人
  • rebaseとmergeの違いを理解したい人
  • rebase時の注意点を知りたい人

Step 1rebaseとは

rebaseは、ブランチの基点(ベース)を別のコミットに移動させる操作です。コミット履歴を直線的に保つことができます。

イメージ: mergeが「合流」だとすると、rebaseは「付け替え」です。featureブランチのコミットをmainの最新の上に載せ替えます。

Step 2基本的な使い方

ターミナル
# featureブランチで作業中
git checkout feature/my-feature

# mainブランチの最新をベースに付け替え
git rebase main

# pullの代わりにrebaseで取り込み
git pull --rebase origin main

Step 3mergeとrebaseの違い

項目mergerebase
履歴分岐・合流が残る直線的になる
マージコミット作成される作成されない
既存コミット変更しない新しいコミットに作り直す
安全性高い共有ブランチでは注意が必要

Step 4コンフリクトの解消

ターミナル
# コンフリクトを解消した後
git add 解消したファイル
git rebase --continue

# rebaseを中止して元に戻す
git rebase --abort

# 現在のコミットをスキップ
git rebase --skip

Step 5rebaseの注意点

  • 共有ブランチではrebaseしない: 他の人が使っているブランチのコミット履歴を書き換えると、チームメンバーに影響が出ます
  • プッシュ済みのコミットはrebaseしない: リモートに既にプッシュしたコミットをrebaseすると、force pushが必要になります
  • ローカルの作業ブランチでは活用する: mainにマージする前にrebaseして履歴を綺麗にするのは良い習慣です

鉄則: 「共有ブランチのrebaseは避ける」「ローカルブランチのrebaseは活用する」が基本ルールです。