コンフリクトとは
AとBの作業ブランチがあるとする。
まずAがリモートリポジトリにプッシュされ、マージされる。
次にBがリモートリポジトリにプッシュされる。
このとき、 AとBで変更内容に対立が起こった場合、どちらを採用すればようのか分からなくなる。
この対立をコンフリクトという。
コンフリクト発生
GitHubにプッシュした際に以下の表示が出たらコンフリクトが起きているということ。
解消の流れ
1.ローカルでmasterブランチに切り替える
2.リモートのmasterブランチをプルする
3.作業ブランチに切り替える
4.masterブランチをマージする
5.コンフリクトが発生している部分を修正する
6.リモートにプッシュする
1.ローカルでmasterブランチに切り替える
$ git checkout master
2.リモートのmasterブランチをプルする
$ git pull origin master
3.作業ブランチに切り替える
$ git checkout B_branch
4.masterブランチをマージする
$ git merge master
5.コンフリクトが発生している部分を修正する
<<<<<<< HEAD
ここが作業ブランチの変更内容
=======
ここがmasterの変更内容
.>>>>>>> master
今回は両方の変更を取り込むことにします。
6.リモートにプッシュする
$ git add .
$ git commit -m "コンフリクト解消内容"
$ git push origin HEAD
これでコンフリクトが解消できました!