マージには2種類ある
- Fast-Forward
- Non Fast-Forward
Fast-Forward
ブランチのポインタの移動だけを行い、新しいコミットは作成しない。
コミットが画像1の状態のとき、mainブランチはコミットDに移動するだけでsub1ブランチの内容を取り込むことができる。
mainブランチのコミット:A
sub1ブランチのコミット:ABCD
移動後のmainブランチ :ABCD
もし画像2の状態でFast-Forwardを行うと、commitEが消えてしまう。
mainブランチのコミット:AE
sub1ブランチのコミット:ABCD
移動後のmainブランチ :ABCD
この場合に登場するのが、Non Fast-Forwardである。
Non Fast-Forward
マージしたことを示す新しいコミットを作成する
新しくcommitFを作成することで、mainとsub1の両ブランチのすべてのコミットを取り込むことができる。
mainブランチのコミット:AE
sub1ブランチのコミット:ABCD
新しいコミットF :AEBCDF
おしまい。