mergeでのbranchの統合

作業branchにて作業が完了したら 、大元のbranchに変更分を統合するためmergeを行います。

mergeは、Fast-foward mergeと、3way mergeの二種類があります。

Fast-forward merge

こちらの方法は、取り込みたいbranchのポインタを先に進める方法で、

以下図のようにmainから切ったfeature1があるとして、feature1にてcommitを二つ積んでいるとします。

その変更分を取り込む際に、以下図のように単純にmainのポインタをfeature1のcommitに移動する方法になります。ただし、feature1を切ったあとに、mainにてcommitが積まれた場合は、使うことができません。

3way merge

こちらは、大元のbranchと、作業ブランチにてそれぞれcommitが積まれており、それを統合する際に、それぞれの変更分を取り込むcommitを作成し、mergeする方法です。

以下図のようにmainからfeature1を切った後に、mainにcommitが積まれ、feature1にてcommitを積んでmergeするとします。その際に、branchを切った時点の、main側のA->Bの差分と、feature1側のA->Cの差分を合わせたcommitを作成して、統合する方法になります。

上記2つの方法を説明しましたが、作業branchでの内容が見やすい点、revertする際に楽である点を踏まえて、3way mergeを使うのが良いかと思います。

Last updated