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 と merge の違いを具体例で解説

Last updated at Posted at 2025-10-24

はじめに

「rebaseして」「mergeして」って、何が違うの? チーム開発でよく耳にするこの2つのコマンドは、どちらもブランチを統合する役割を持ちますが、実は履歴の扱い方がまったく異なります。

目的によって使い分けることが、Gitを使いこなす第一歩です。この記事では、図と具体例を通して、rebasemergeの違いをイメージで理解できるように解説します。

前提:ブランチの状況をイメージしよう

開発中によくある、以下の状況を考えてみましょう。

  • チーム全体で使っている main ブランチ
  • 自分の作業ブランチである feature/add-login ブランチ

あなたのブランチを切り出した後、mainには他の人のコミット(B、C)が増えています。

現在のブランチ構成

main:    A --- B --- C
feature:       └── D --- E

このとき「最新のmainを取り込みたい」と思ったら、mergerebaseのどちらかを使います。

merge とは:「履歴をそのまま合流させる」

mergeは、2つの履歴をそのまま1つにまとめるコマンドです。

コマンド例

git checkout feature/add-login
git merge main

結果のイメージ

A --- B --- C
       └── D --- E --- M

Mマージコミットと呼ばれる新しいコミットで、これが「mainfeatureを合流させた証」となります。

項目 詳細
メリット 履歴を壊さない(安全)、どのブランチから統合したのかが明確
デメリット マージコミットが増えて履歴が複雑になることもある
よく使う場面 チーム開発のmainブランチへの統合、GitHubの「Merge pull request」時

rebase とは:「履歴を並び替えてきれいにする」

rebaseは、自分のコミットを最新のmainの「上」に乗せ換えるコマンドです。

コマンド例

git checkout feature/add-login
git rebase main

結果のイメージ

A --- B --- C --- D' --- E'

D'E'新しく作り直されたコミットです。mainの最新コミット(C)を土台にして、自分の作業をやり直した形になり、履歴が一直線になります。

項目 詳細
メリット 履歴が一直線で見やすい(きれい)、余計なマージコミットが入らない
デメリット 元の履歴を書き換える(安全ではない)、共有ブランチで使うと混乱を招く
よく使う場面 自分の作業ブランチの整理、チームにプッシュする前のローカルでの整形

rebasemergeの違いまとめ

比較項目 merge rebase
履歴の形 枝分かれが残る 一直線になる
履歴の安全性 壊さない(安全) 書き換える(注意が必要)
マージコミット あり なし
チーム開発 main統合向き ローカル整理向き
よく使う場面 PR統合時 自分の作業ブランチ整理時

注意点:rebaseは「共有ブランチ」で使わない!

rebaseは履歴を書き換えるため、他の人がpullしている共有ブランチで実行すると履歴がズレてしまい、大きな混乱を招きます。

  • 自分のローカルブランチOK
  • チーム共有のmaindevelopNG

Point 「rebaseは1人作業専用コマンド」「mergeはチーム共有用コマンド」と覚えておくと安全です。

実務でのおすすめ使い分け

状況 推奨コマンド 理由
自分の作業ブランチを最新mainに追従 git pull --rebase origin main 履歴がきれいに保たれる
チームのmainブランチに統合 git merge (またはPRのMergeボタン) 履歴を壊さず安全に合流
コードレビュー前にコミットを整理したい git rebase -i (対話的rebase) コミットをまとめてスッキリさせる

まとめ

  • merge:履歴をそのまま残して安全に合流チーム向け
  • rebase:履歴を整理してきれいに整える個人作業向け

どちらも「正しい・間違い」ではなく、「目的で使い分ける」ものです。あなたの開発スタイルやチームのルールに合わせて、適切なコマンドを選択しましょう!

宣伝

くすりの窓口ではエンジニアを積極採用中です!
ご興味のある方は下記リンクよりお問い合わせください!

学生向け

中途向け

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?