GitHubのプルリクエスト(Pull Request)でコンフリクト(Conflict)が発生した場合の解決方法 ~merge編~
GitHubでプルリクエスト(Pull Request)を発行したがコンフリクト(conflict)が発生した場合に、コンフリクトを解消するまで「Merge Pull Request」ボタンが非活性でマージが出来ません。
GitHubのPull Request画面で以下のようなメッセージが表示されている場合です。
This branch has conflicts that must be resolved
Use the web editor or the to resolve conflicts.
Conflicting files
ブラウザ上でGitHubの「Resolve conflicts」ボタンから解決してもよいですが、今回はローカルのGitのmergeコマンドで解決する方法をご紹介します。
目次
コンフリクト(conflict)の解決手順
コンフリクトが起きた状況
developブランチからmasterブランチへのプルリクエスト(Pull Request)でコンフリクトが発生した場合を想定しています。
ローカルリポジトリのmasterブランチを最新化する
masterブランチをチェックアウトしリモートリポジトリのmasterブランチを取得する
git checkout master
git fetch
git merge origin/master
developブランチをチェックアウト
git checkout develop
developブランチにmasterブランチをマージ
git merge master
コンフリクトを解決する
お使いのエディタでコンフリクトしているファイルを正しい内容に編集する
以下のコマンドでorigin/developに反映する
git add -A
git commit -m 'コメント'
git push origin HEAD
GitHubのPull Request画面で「Merge Pull Request」ボタンをクリックしマージする
コンフリクト解消済みのdevelopブランチをリモートリポジトリのdevelopブランチにPushしたことで、「Merge Pull Request」ボタンが活性化しています。
これで、マージすることが出来るようになりました。