GitHub でのマージ コンフリクトを解決する
コンフリクト エディターを使用すれば、GitHub で行の変更が競合している単純なマージ コンフリクトを解決できます。
GitHub Enterpriseで解決できるマージコンフリクトは、Git リポジトリの別々のブランチで、同じファイルの同じ行に異なる変更がなされた場合など、互いに矛盾する行変更を原因とするもののみです。 その他すべての種類のマージ コンフリクトについては、コマンド ラインでコンフリクトをローカルに解決する必要があります。 詳細は「コマンド ラインを使用してマージコンフリクトを解決する」を参照してください。
サイトの管理者がリポジトリ間の Pull Request に対してマージ コンフリクト エディターを無効にしている場合、GitHub Enterprise ではコンフリクト エディターを使用できず、コマンドラインでマージ コンフリクトを解決する必要があります。 たとえば、マージ コンフリクト エディターが無効な場合、フォークと上流リポジトリの間の Pull Request ではそれを使用できません。
警告: GitHub Enterprise でマージ コンフリクトを解決するときに、Head ブランチが master
のようなリポジトリのデフォルト ブランチまたは保護されたブランチである場合でも、Pull Request の Base ブランチ全体が Head ブランチにマージされます。 このブランチにコミットすることが間違いでないことを確認してください。
-
リポジトリ名の下で [Pull requests] をクリックします。
-
[Pull Requests] リストで、解決するマージ コンフリクトを起こしている Pull Request をクリックします。
-
指定した Pull Request の下部周辺で、[Resolve conflicts] をクリックします。
参考: [Resolve conflicts] ボタンが作動しない場合、指定した Pull Request のマージ コンフリクトは GitHub Enterprise で解決するには複雑すぎ るか、サイトの管理者がリポジトリ間の Pull Request に対してコンフリクト エディターを無効にしています。 マージ コンフリクトを解決するには、Atom の Git インテグレーションのような別の Git クライアントまたはコマンド ラインを使用する必要があります。 詳細は「コマンド ラインを使用してマージコンフリクトを解決する」を参照してください。
-
自分のブランチの変更だけを保持するか、他のブランチの変更だけを保持するか、あるいは両方の変更を含む新しい変更を作成するかを決定してください。コンフリクトマーカーの
<<<<<<<
、=======
、>>>>>>>
を削除し、最終のマージに含めたい変更を作成してください。 -
ファイルに複数のマージ コンフリクトがある場合は、次の一連のコンフリクト マーカーまで下にスクロールし、ステップ 4 と 5 を繰り返してマージ コンフリクトを解決します。
-
ファイル内のコンフリクトをすべて解決したら、[Mark as resolved] をクリックします。
-
コンフリクトしているファイルが複数ある場合は、[conflicting files] の下のページの左側で編集する次のファイルを選択し、Pull Request のマージ コンフリクトをすべて解決するまでステップ 4 から 7 を繰り返します。
-
マージ コンフリクトをすべて解決したら、[Commit merge] をクリックします。 これにより、Base ブランチ全体が Head ブランチにマージされます。
-
Pull Request をマージするには、[Merge pull request] をクリックします。 Pull Request のマージ オプションの詳細については、「 Pull Request をマージする」を参照してください。