Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-10-12. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

マージ競合について

この記事では、次の� �目が扱われます。

マージコンフリクトは、競合するコミットを持つブランチをマージしようとしたときに生じるもので、最終のマージにどちらの変更を取り入れるかを Git が判断するのに手助けが必要になります。

Git がブランチ間の差異を自動的に解決してマージできる� �合もあります。 通常、変更は異なる行にあったり、さらには異なるファイルにあったりするので、コンピュータにとってマージの理解がシンプルになります。 一方、Git が自力では差異を解決できず、あなたの介入が必要となることもあります。 しばしば、人々が同じファイルの同じ行に異なる変更をした� �合や、ある人が編集したファイルを他の人が削除していた� �合にマージコンフリクトが生じます。

GitHub Enterprise Server上でプルリクエストをマージできるようにするには、すべてのマージコンフリクトを解決しなければなりません。 pull request 中の比較ブランチとベース ブランチ間でマージ競合がある� �合、 [pull request のマージ] ボタンの上に、競合する変更を持つファイルのリストが表示されます。 [Merge pull request] ボタンは、比較ブランチとベースブランチ間のすべての競合が解決されるまで、非アクティブになっています。

マージコンフリクトのエラーメッセージ

マージ競合の解決

マージコンフリクトを解決するには、競合しているファイルを手作業で編集し、最終のマージに残したい変更を選択しなければなりません。 マージコンフリクトを解決するにはいくつかの方法があります。

  • マージコンフリクトが、Git リポジトリ中の異なるブランチ上で同じファイルの同じ行に異なる変更をしたといったような、競合する行の変更から生じた� �合には、コンフリクトエディタを使って GitHub Enterprise Server 上で解決できます。 詳細については、 GitHub でマージ競合を解決する方法に関するページを参照してく� さい。
  • 他のすべての種類のマージコンフリクトについては、リポジトリのローカルクローン中でマージコンフリクトを解決し、変更を GitHub Enterprise Server 上のブランチにプッシュしなければなりません。 コマンド ラインを使用するか、GitHub Desktop などのツールを使用し、変更をプッシュできます。 詳細については、コマンド ラインでマージ競合を解決する方法に関するページを参照してく� さい。

コマンドライン上にマージコンフリクトがあるなら、自分のコンピュータ上でローカルにマージコンフリクトを解決するまでは、ローカルの変更を GitHub Enterprise Server にプッシュできません。 マージコンフリクトのあるコマンドライン上のブランチをマージしようとすると、エラーメッセージが返されます。 詳細については、「コマンド ラインを使用してマージ コンフリクトを解決する」を参照してく� さい。

$ git merge BRANCH-NAME
> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result

参考資料