現在インターンでGitHub上の開発に参加させてもらっています。
開発の過程でローカルブランチをプッシュしてプルリクエストを出したときによくコンフリクトしてしまうのでその修正の仕方を2通り先輩に教わりました。
忘れないうちに備忘録としてまとめておこうと思います。
また、筆者はWindowsを使っているので、Windowsの言葉で書きます。
#方法1:(基本)ローカルで修正する
###手順1
git fetch
まず前提として、コマンドプロンプトで作業ディレクトリ上にいるとします。(普通はすでにいる)
そこでgit fetchを行うことでリモートの状態を取得します。
###手順2
git merge origin/(マージしたいリモートブランチの名前)
これにより、現在のブランチとマージしたいリモートブランチの状態のローカルでのマージを試みます。
コンフリクトが起きていたらコマンドプロンプト上にそのように表示されます。
とくに、どのファイルがコンフリクトを起こしているのかを書いてくれているので確認。
###手順3
エディタで修正
コンフリクトが起きているとgitがどこがどのようにコンフリクトしているのかをファイルに書き込んでくれているので、「自分のブランチ」と「リモートのブランチ」の違いを比べて
・どちらかを削除
・両方残す
・いいとこどりする
のどれを行うべきかを見比べ、リモートブランチと同じ所に関して違うコードを書いていない状態にする。
###手順4
もう一度push
これでコンフリクトが解消しているはず!
#方法2:(方法1に慣れたら)GitHub上で修正する
実は方法1の中身自体はすべてGitHub上で行えます。
ただ、基本は方法1なのでgitの基本が身につくまでは方法1でやって、方法2は方法1と同じことをGitHub上からやっているんだということを理解した上で使うべきとアドバイスをいただきました。
###手順1
GitHub上のプルリクエストを確認する
GitHub上にあるプルリク一覧の画面に行き、自分が出したプルリクを確認。
###手順2
コンフリクトを修正
コンフリクトが起きていたら修正画面に行けるので、その画面で修正。(ブラウザ上でGitHubがエディタとして動いてくれる!)
これでOK!