Skip to main content

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

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

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

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

  1. リポジトリ名の下にある [pull request] をクリックします。 [Issues and pull requests](issue と pull request) タブの選択

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

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

    参考: [競合の解決] ボタンが作動しない場合、指定した pull request のマージ コンフリクトは GitHub で解決するには複雑すぎるか、。 別の 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 ブランチが保護されている場合は、新しいブランチを作成する必要があります。 保護されたブランチを更新するオプションはありません。

    [Create branch and update my pull request] または [I understand, continue updating BRANCH] をクリックします。 ボタンテキストは、実行中のアクションに対応しています。

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

参考資料