conflict

mergeする際に、mainとfeatureでそれぞれcommitを積んでいて、もしそれぞれのcommitにて、同じファイルの同じ行を編集していた場合、どっちの差分を取り込めば良いのか分からず、conflic(衝突)が起こります。

実際にconflictを起こしてみましょう。feature3にて作業します。

git switch -c feature3

b.txtを以下のように編集しましょう。

b.txt◎
sample2
tarou
hello

git addgit commitしましょう。

git add .
git commit

commit messageは以下とします。

b.txtにhelloを追加

次にmainにて作業します。

git switch main

b.txtを以下のように編集します。

b.txt◎
sample2
tarou
good evening

git addgit commitしましょう。

commit messageは以下とします。

では、mergeをしてみます。

上記を実行すると、以下のようにb.txtがconflictしているとメッセージが表示されます。

ファイルを確認すると、以下のように表示されているかと思います。

<< HEAD ===で囲われている部分が現在のbranchでの変更内容で、=== >>> feature3で囲われている部分がfeature3での変更部分になります。同じファイルの同様の行が編集された場合にこのように表示されます。今回はどちらの変更分も取り込みたいため、

<< HEAD === ===>>> feature3の部分を削除しましょう。

ファイルの編集が終わったら、git addgit commitしましょう。

commit messageはデフォルトのままとします。

これでconflictを解消してmergeができたかと思います。

Last updated