ブランチを削除します。すべての作業が取り込まれたので、これらのブランチはもはや不要だからです。最終的なコミット履歴ほんとうは怖いリベースあぁ、このすばらしいリベース機能。残念ながら欠点もあります。その欠点はほんの一行でまとめることができます。公開リポジトリにプッシュしたコミットをリベースしてはいけないこの指針に従っている限り、すべてはうまく進みます。これを守らなければ、あなたは嫌われ者となり、友人や家族からも軽蔑されることになるでしょう。リベースをすると、既存のコミットを破棄して新たなコミットを作成することになります。新たに作成したコミットは破棄したものと似てはいますが別物です。あなたがどこかにプッシュしたコミットを誰かが取得してその上で作業を始めたとしましょう。そのコミットを書き換えて再度プッシュすると、相手は再びマージすることになります。相手側の作業を自分の環境にプルしようとするとおかしなことになってしまいます。公開した作業をリベースするとどんな問題が発生するのか、例を見てみましょう。中央サーバーからクローンした環境上で何らかの作業を進めたものとします。現在のコミット履歴はこのようになっています。リポジトリをクローンし、なんらかの作業をすませた状態さて、誰か他の人が、マージを含む作業をしてそれを中央サーバーにプッシュしました。それを取得し、リモートブランチの内容を作業環境にマージすると、その歴史はこのような状態になります。次に、さきほどマージした作業をプッシュした人が、気が変わったらしく新たにリベースし直したようです。使ってサーバー上の歴史を上書きしてしまいました。あなたはもう一度サーバーにアクセスし、新しいコミットを手元に取得します。誰かがリベースしたコミットをプッシュし、あなたの作業環境の元になっているコミットが破棄されたさあたいへん。実行すると、両方の歴史の流れを含むマージコミットができあがり、あなたのリポジトリはこのようになります。実行すると、同じ作者による同じメッセージのコミットが二重に表示されてしまいます。あなたがその歴史をサーバにプッシュすると、リベースされたコミット群を中央サーバーに送り込むことになり、他の人たちをさらに混乱させてしまいます。歴史に取り込みたくないはずです。最初にリベースしたのでしょうからね。うまい具合に判断して助けてくれることがあります。チームの誰かがプッシュした変更が、あなたの作業元のコミットを変更してしまった場合、どれがあなたのコミットでどれが書き換えられたコミットなのかを判断するのは大変です。チェックサム以外にもうひとつのチェックサムを計算しています。これは、そのコミットで投入されたパッチから計算したものです。多くの場合、どれがあなたのコミットかを自動的に判断し、そのコミットを新しいブランチの先端に適用してくれます。先ほどの例で考えてみます。