ブログ
Gitでrebaseコマンドを使いコミットグラフを綺麗にする
我々の開発現場では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>
関連記事
2024.09.30
2024.09.30
2024.04.08