開発をしているとコンフリクトが起こることがよくあります。
今回はそのコンフリクトを解消した方法について書いていきます。
■流れ
・git feach,pull 違い
・コンフリクト解消
git feach,pull 違い
git feach origin master
①リモートリポジトリの最新が更新されます。
git merge origin/master
②最新情報をmasterブランチに結合させます。
git pull origin master
③は①+②を同時に行ってくれます。
コンフリクト解消
例を用いて解説して行こうと思います。
今回は、1branchと2branchで同じファイルを変更した際にコンフリクトが発生したと仮定します。
1branch(C)をpushでき、masterブランチ(D)にマージすることができます。
コンフリクト発生なし。
2branch(C)をpushできるが、masterブランチにマージすることができません。
コンフリクト発生あり。
※コンフリクト・・・競合
2branch(C)はどうすればいいのか?
git pull origin master(D)
ローカルmasterブランチを最新にする。ここではDが一番最新。
git checkout 2branch(C)
2branch(C)に移動します。
git merge master(D)
2branch(C)にmaster(D)(最新情報)を結合します。
(1branch(C)で変更した内容が2branch(C)に反映されるイメージ)
競合の警告が表示されるので必要箇所を修正してください。
修正が終わったブランチを2branch(E)とします。
2branch(E)をpushでき、masterブランチ(F)にマージすることができます。
そうすることよってコンフリクトが解消できます。