git rebaseは、ずっと放置されていたブランチにmasterの内容を反映させるに大変便利なコマンドだった

やっとrebaseコマンドの使いみちが理解できたのでメモ。

rebaseコマンドは、放置していたtopicブランチに、(開発が進んだ)masterブランチの内容を反映させるときに便利だった。




rebaseコマンドの解説

rebaseについてgit本家のサイトには、以下のように書いてあります。

git-rebase – Reapply commits on top of another base tip

日本語に翻訳すると

「他のブランチのトップの上に、現在のブランチのコミット内容を再適用する」

以下のように開発が進んでいるとします。

              A---B---C topic
             /
    D---E---F---G master

topicブランチの開発と共にmaster側も進んでいます。

topicブランチの開発が止まり1年経ったとします。1年後、topicブランチの開発を再開したときmasterブランチとの差が開いた状態になります。そんなとき、最新のmasterブランチの内容から開発を進めたいと思います。

そんなときに役立つのがrebaseコマンドです。

■rebaseコマンド

git checkout topic

git rebase master

                          A'--B'--C' topic
                          /
    D---E---F---G master

成功すると上記のような履歴になります。

ポイントは、最新のmasterからtopicの履歴が作られていることです。その結果、履歴が綺麗になります。

■もしマージで対処したら・・・

マージすると、以下のような履歴なりmasterの中にtopicブランチの内容が反映されているようになり、どこがtopicブランチの内容なのか分かりづらくなってしまいます。

D—E—F–A’–B’–C’—G master(その中のどこかにtopicブランチの内容がある)

リベース作業をするときに知っておくべきコマンド

■git rebase –continue

rebase中、競合が発生したら、修正します。修正したら、continueすることによりrebase作業を続行します。

■git rebase –abort

rebase作業を止めて、rebase前の状態に戻ります。

まとめ

rebaseコマンドは、放置していたtopicブランチに、(開発が進んだ)masterブランチの内容を反映させるときに便利です。その理由は履歴が綺麗になり、管理が楽になるらです。

rebaseは、使い方と間違えると、チーム間で競合発生して厄介なことになりますが、使いこなせると開発が楽になるので知ってべきコマンドです。

スポンサーリンク
スポンサー




スポンサー




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー