自分用のメモとしてまとめます。
Conflictの起き方
例えば共通で利用しているdevelopブランチがあったとして、そこからfeatureブランチを切って開発している。developブランチがすでに同じ個所が更新されている場合、featureブランチをマージするときにConflictが起きる。

Conflictを修正するフロー
developにマージする前に、featureブランチにdevelopブランチの修正を反映しておくことでConflictを修正できる。

実際にConflictを起こして解消してみる
スタート時点
developブランチを更新
featureブランチで同じ個所を更新
featureブランチからPush & Pull Rrequest
この状態で、ブラウザからfeature/TestをdevelopにマージするPRを出してみる。

Conflictになることを確認。

VS上でConflictを解消する
まずlocalのdevelopブランチを最新化
developをチェックアウト。現在developが古い状態になっていることを確認。

developをPullし、最新の状態になったことを確認。先ほどのブラウザからの変更が反映されている。

localのdevelopをlocalのfeature/Testにマージ
feature/Testブランチをチェックアウト。Git > ブランチの管理からdevelopをfeature/Testブランチにマージする。


localでConflictを解消
マージ時に競合が出るので、解決をクリック。

VSのマージ機能を利用して解消。
今回はfeatureの内容が正しい前提で進める。

Conflictを解消するCommitをfeature/TestにPush
修正した状態で保存してCommit、Push。

グラフを見ると、developのマージと競合の解決に2個分のCommitがある。

ブラウザからPRを再度確認するとConflictが解消されている。

プラクティス
お勧めは頻繁にDevelopをFeatureに頻繁にマージしておくこと。最低限Pushする前に一度ローカルで実施し、解消してからPushするようにする。


