DEV Community

d.yoshimitsu
d.yoshimitsu

Posted on

【Git】リベース対マージ

リベースとマージどちらを選択するべきか

一連のコミットをブランチの先頭へリベースすることは、2つのブランチをマージするのに似ています。
どちらの場合も、ブランチの先頭は両方のブランチの内容を結合したものになります。

「このコミットでは、マージとリベースどちらを使うべきだろう」と自問したくなるかもしれません。
これは重要な問いかけです。複数の開発者、リポジトリ、ブランチが対象となる場合は特に重要です。

リペースしたいブランチ上のコミットをすでに公開し、あるいは提供しているなら、他者への悪影響を考慮すべきです。
リベースは適さないものの、そのブランチの変更が必要なら、マージが正しい選択です。

覚えておくべき重要な概念

  • リベースは既存のコミットを書き換えて、新しいコミットを作ります。
  • 到達不可能になった古いコミットは消去されます。
  • リベース前の古いコミットのユーザーは取り残されてしまいます。
  • リベース前のコミットを使っているブランチがあるなら、それも同様にリベースする必要があるかもしれません。
  • 異なるリポジトリにリベース前コミットのユーザーがいる場合、あなたのリポジトリはすでに移動済みだとしても、そのリポジトリにはコミットのコピーが残ったままです。このため、彼らも同様にコミット履歴を修正しなければならなくなるでしょう。

Top comments (0)