Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。
現在、GitHub AE は限定的リリースです。

GitHub でのマージ コンフリクトを解決する

コンフリクト エディターを使用すれば、GitHub で行の変更が競合している単純なマージ コンフリクトを解決できます。

GitHub AEで解決できるマージコンフリクトは、Git リポジトリの別々のブランチで、同じファイルの同じ行に異なる変更がなされた場合など、互いに矛盾する行変更を原因とするもののみです。 その他すべての種類のマージ コンフリクトについては、コマンド ラインでコンフリクトをローカルに解決する必要があります。 詳しくは、「コマンド ラインを使用してマージ コンフリクトを解決する」を参照してください。

サイトの管理者がリポジトリ間の Pull Request に対してマージ コンフリクト エディターを無効にしている場合、GitHub AE ではコンフリクト エディターを使用できず、コマンドラインでマージ コンフリクトを解決する必要があります。 たとえば、マージ コンフリクト エディターが無効な場合、フォークと上流リポジトリの間の Pull Request ではそれを使用できません。

警告: GitHub AE でマージ競合を解決すると、pull request のベース ブランチ全体がヘッド ブランチにマージされます。 このブランチにコミットすることが間違いでないことを確認してください。 head ブランチがリポジトリのデフォルトブランチである場合、プルリクエストの head ブランチとして機能する新しいブランチを作成するオプションが表示されます。 head ブランチが保護されている場合、コンフリクトの解決をマージすることができないため、新しい head ブランチを作成するように求められます。 詳しくは、「保護されたブランチについて」を参照してください。

  1. リポジトリ名の下にある [pull request] をクリックします。 [pull request] タブの選択

  2. [Pull Requests] リストで、解決するマージ コンフリクトを起こしている Pull Request をクリックします。

  3. 指定した pull request の下部周辺で、 [競合の解決] をクリックします。 [マージ競合の解決] ボタン

    参考: [競合の解決] ボタンが作動しない場合、指定した pull request のマージ コンフリクトは GitHub AE で解決するには複雑すぎるか、サイトの管理者がリポジトリ間の pull request に対してコンフリクト エディターを無効にしています。 別の Git クライアントを使用するか、コマンドラインで Git を使用して、マージのコンフリクトを解決する必要があります。 詳細については、「コマンド ラインを使用してマージ コンフリクトを解決する」を参照してください。

    1. あなたのブランチの変更だけを保持したいか、他のブランチの変更だけを保持したいか、あるいは両方のブランチからの変更を取り入れられる新しい変更を作成するかを決めてください。 競合マーカー `<<<<<<<`、`=======`、`>>>>>>>` を削除し、最終的なマージで必要な変更を行います。 ![競合マーカーでマージ競合例を表示する](/assets/images/help/pull_requests/view-merge-conflict-with-markers.png)
  4. ファイルに複数のマージ コンフリクトがある場合は、次の一連のコンフリクト マーカーまで下にスクロールし、ステップ 4 と 5 を繰り返してマージ コンフリクトを解決します。

  5. ファイル内のコンフリクトをすべて解決したら、 [Mark as resolved] をクリックします。 [Mark as resolved] ボタンをクリックする

  6. コンフリクトしているファイルが複数ある場合は、[conflicting files] の下のページの左側で編集する次のファイルを選択し、Pull Request のマージ コンフリクトをすべて解決するまでステップ 4 から 7 を繰り返します。 コンフリクトしている次のファイルを選択する (該当する場合)

  7. マージ コンフリクトをすべて解決したら、 [Commit merge] をクリックします。 これにより、Base ブランチ全体が Head ブランチにマージされます。 [Resolve merge conflicts] ボタン

  8. プロンプトに従い、コミット先のブランチをレビューします。

    head ブランチがリポジトリのデフォルトブランチである場合、コンフリクトを解決するために加えた変更でこのブランチを更新するか、新しいブランチを作成してこれをプルリクエストのヘッドブランチとして使用するかを選択できます。 更新するブランチの確認を求める

    新しいブランチを作成する場合は、ブランチの名前を入力します。

    プルリクエストの head ブランチが保護されている場合は、新しいブランチを作成する必要があります。 保護されたブランチを更新するオプションはありません。

    [ブランチの作成と pull request の更新] または [理解しており、BRANCH の更新を続ける] をクリックします。 ボタンテキストは、実行中のアクションに対応しています。

  9. pull request をマージするには、 [pull request のマージ] をクリックします。 その他の pull request マージ オプションの詳細については、「プル要求のマージ」を参照してください。

参考資料