我々の開発現場ではGitでバージョン管理を行っていますが
origin/masterブランチからbugfixブランチを作成して作業を行っています。

自分の修正をあげようとした時に
メンバーの修正がorigin/masterブランチに先に取り込まれていると

1. origin/masterをpullしてbugfixブランチにマージ
2. リモートブランチにbugfixブランチをプッシュ
3. origin/masterにPull Request(Merge Request)を送っていました。

まだGitに入門したばかりだったのでそれでいいと思っていたのですが
rebaseというコマンドを使うことで
コミットグラフが綺麗に見やすくなるという事実をしりました!

ちなみにGithubなどのオープンソースプロジェクトにプルリクエストを送る場合は
rebaseしてから送るのがマナーとされているみたいです。

##### margeの場合

“`
origin/master – A – B – C
\
bugfix D – E
“`

この状態のbugfixブランチで
* 一回`git pull origin master`
* origin/masterにPull Request(Merge Request)
すると以下のグラフのようになります。

“`
origin/master – A – B ——- C — G
\ \ /
bugfix D — E — F
“`

しかし、そうするとマージコミット(FとGのコミット)が2つ残ってしまい
コミットグラフが汚くなってしまいます。

このような場合は、rebaseコマンドを使うことで解消することができます。

##### rebaseの場合
“`
origin/master – A – B – C
\
bugfix D – E
“`

このときにbugfixブランチでrebaseコマンドを打つと

“`
origin/master – A – B
\
bugfix   C – D – E
“`

となり、origin/masterブランチの更新がbugfixブランチに反映されます。
この状態でorigin/masterブランチに`Pull Request(Merge Request)`をすると

“`
origin/master – A – B – C – D – E
“`

となり一直線上のグラフになりきれいになります。

# 使い方

origin/masterブランチが進んでいる場合にPull Request(Merge Request)を行うには

1. rebase対象(origin/master)ブランチを最新の状態にします。

“`
$ git branch
* master
bugfix

$ git pull origin master
“`

2. bugfixブランチでrebaseコマンドを実行します。

“`
$ git checkout bugfix
$ git rebase master
“`

このようにすることでコミットグラフが綺麗になります。

<

p>