logo-sm

お問い合わせは Webフォームから

ブログ

Gitでrebaseコマンドを使いコミットグラフを綺麗にする

2016.11.19

我々の開発現場では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>

関連記事

  • 自宅に構築!仮想環境 ~BIG-IP VE導入編~
    【導入】 前回は、自宅サーバにProxmoxを導入しました。 今回はその上に仮想マシンとしてBIG-IP VE […]

    2024.09.30

  • 自宅に構築!仮想環境 ~Proxmox導入編~
    【導入】 以前から学習用に自宅仮想環境をつくりたく思っていたところ、BIG-IP(の仮想版)に触れる必要が出て […]

    2024.09.30

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • パートナー

  • 人材育成・採用情報