3分で理解できる!git-rebaseとmergeとの違いまとめ



3分で理解できる!git-rebaseとmergeとの違いまとめ

git ビギナーを悩ませる merge(マージ) と rebase(リベース)。どちらもブランチ元に統合する機能で、しかも rebase の方はコミットがキレイになる、と巷では持てはやされています。   しかし、間違った方法で rebase を使うと、みんなから嫌われる可能性もあります。今回はそんな rebase 機能についてご紹介させて頂きます。

目次
  1. Gitビギナー向け!git rebaseとは
  2. git rebase(リベース)とは
  3. git rebase の<span style="color: #ff0000;">注意点</span>
  4. merge(マージ)とrebase(リベース)の違い
  5. rebase と merge の使い分け
  6. まとめ

Gitビギナー向け!git rebaseとは

git rebase(リベース)とは


img : The House Of Hades

 

git rebase とは、作業が完了したブランチを分岐元のブランチにくっつける時に使う機能の一つです。   内容としては、作業ブランチを分岐元(master 等)にくっつける手配となりますので、くっつけた順番でコミットが記録されます。そのため後でコミットを確認した時(git log)に見やすい特徴があります。

 

git rebase の注意点

 

通常は分岐先ブランチで分岐元(master)につなぐ作業を行いますが、その逆、つまり分岐元(master)で分岐先ブランチをつなぐ作業を行うととんでもない結果を招きます。   それはブランチが消えて、分岐元(master)のみになることです。これをやってしまうと、間違いなくみんなから嫌われるので要注意です。   _

rebase の間違った例

image

 

merge(マージ)とrebase(リベース)の違い

ブランチの結合には、merge と rebase の2つの方法があります。   rebase に比べて merge の方は、ザックリとした結合方法で、たくさんのブランチも一度に master に結合することができます。ただし merge で結合した場合、ブランチのコミットが全て記録されません。   プロジェクトの流れを正確に把握しようと思うとコミットが残る rebase の方がオススメといえます。

 

rebaseの場合のコマンド例  merge の場合のコマンド例
git checkout 分岐先のブランチ1
git rebase master
git checkout 分岐先のブランチ2
git rebase master
git checkout master
git merge 分岐先のブランチ1
git merge 分岐先のブランチ2
image image
 

rebase と merge の使い分け

rebase の方が好ましい場合

プロジェクトメンバーが Git に慣れていて、記録を正確に残したい場合は rebase の方が好ましいです。   またメンバーが社外にいる場合は、コミュニケーションが取りにくいので rebase でコミットを残していく方が好ましいと考えられます。

 

Merge の方が好ましい場合

プロジェクトメンバーが Git に慣れていない場合、merge の方が賢明でしょう。git コミットが残らない分、メールやチャットでコミュニケーション部分をリカバリーする必要があります。

まとめ

基本的には rebase の使い方を間違えると、ブランチが消える、という点を頭に叩き込んでおけば大丈夫と思います。 これでプロジェクト・リーダーから git の方針が出てもビビることなく、仕事に打ち込めますよね。

 

関連記事

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp