Git 入門④

git merge

git mergeで複数のブランチを一つにまとめることができます。

前回↓も少し使ってみました。 utouto97.hatenablog.com

Fast-forward

前回のマージは以下のパターンになります。 f:id:utouto97:20210702221555p:plain

この場合だと、masterブランチをdocブランチのところまで進めるだけになります。
特に編集も必要ないです。

Fast-forwardではないマージ

以下のような場合、Fast-forwardとはなりません。 f:id:utouto97:20210703211537p:plain

この場合は、masterブランチとdocブランチがそれぞれ別の変更が加わり、別々のコミットを指しています。
この場合だと、一方のブランチを進めることでもう一方のブランチと同じコミットを指すようにはできません。
そのため、Fast-forwardではなく、マージすることになります。

一つにまとめるコミットを作って、それぞれの変更を反映させます。

f:id:utouto97:20210703212224p:plain

こうすることで、docブランチとmasterブランチを一つにまとめることができました。

コンフリクト

マージして一つにまとめる際に、二つのブランチで同じファイルに変更を加えていなければそのままマージできます。
しかし、二つのブランチで同じファイルに対して異なる変更を加えていた場合、コンフリクトが発生します。
コンフリクトを解消しなければ、マージすることはできません。

コンフリクトは、同じファイルに対して、異なるブランチで変更を加えているため起こっています。
そのため、そのファイルに加える変更を決めてあげれば、コンフリクトは解消できます。
そのファイルを編集して、変更を決定します。

コンフリクトを解消すればマージできます。