IntelliJ IDEA 2026.1 Help

Git の競合を解決する

チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。 これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。 しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。

Git では、 プルマージリベースチェリーピック変更のスタッシュ解除、または パッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があります。 競合がある場合、これらの操作は失敗し、アップストリームバージョンを受け入れるか、バージョンを優先するか、変更をマージするように求められます。

競合でマージされたファイルダイアログ

競合 ダイアログは、Git レベルで競合が検出されると自動的にトリガーされます。

このダイアログで 閉じる をクリックするか、コマンドラインからマージ競合につながる Git 操作を呼び出すと、 コミット ツールウィンドウの 変更 ビューに、解決するためのリンクを含む マージの競合 ノードが表示されます。

ローカル変更ビューのマージ競合ノード

IntelliJ IDEA は、ローカルで競合を解決するためのツールを提供します。 このツールは 3 つのペインで構成されています。

  • 左側のペインには、読み取り専用のローカルコピーが表示されます

  • 右ペインには、リポジトリにチェックインされた読み取り専用バージョンが表示されます。

  • 中央のペインは、競合する問題を解決した結果が表示される、完全に機能するエディターです。 初期状態では、このペインの内容はファイルの ベースリビジョン と同じです。つまり、両方の競合するバージョンが派生したリビジョンとなります。

競合解決ツールでの色分け
  1. 変更行

  2. Deleted lines

  3. 新しく追加された行

  4. 矛盾する行

競合の解決

  1. 競合 ダイアログの マージローカルの変更 ビューの 解決 リンクをクリックするか、エディターで競合するファイルを選択し、メインメニューから VCS | Git | 競合の解決 を選択します。

  2. 競合しないすべての変更を自動的にマージするには、ツールバーの the Apply Non-Conflicting Changes button (競合しないすべての変更を適用) をクリックします。 the Apply Non-Conflicting Changes from the Left button (競合しない変更を左側から適用) と the Apply Non-Conflicting Changes from the Right button (競合しない変更を右側から適用) を使用して、それぞれダイアログの左側 / 右側部分からの競合しない変更をマージすることもできます。

  3. 競合を解決するには、左 (ローカル) バージョンと右 (リポジトリ) バージョンに適用するアクション (the Accept button を受け入れるか the Ignore button を無視する) を選択し、結果のコードを中央ペインで確認する必要があります。

    競合の解決

    中央ペインでハイライトされた競合を右クリックし、コンテキストメニューからコマンドを使用することもできます。 左を使用して解決する および 右を使用して解決する コマンドは、それぞれ、一方からの変更を受け入れ、もう一方からの変更を無視するためのショートカットを提供します。

    矛盾する変更のコンテキストメニュー

    単純な競合(たとえば、同じ行の最初と最後が異なるファイルリビジョンで変更されている場合)では、ワンクリックで変更をマージできる 単純な競合を解決 the Resolve simple conflicts button ボタンが使用可能になります。

    単純な競合の解決ボタン

    このような競合は、 競合しないすべての変更を適用 アクションでは解決されません。競合が適切に解決されていることを確認する必要があります。

  4. 競合を解決するために、異なるバージョンを比較することも有用な場合があります。 the Compare contents button ツールバーボタンを使用して、オプションのリストを呼び出します。 ベース は、ローカルバージョンとリポジトリバージョンが由来するファイルバージョン(最初は中央のペインに表示されます)を参照し、 垂直方向の中央 は結果バージョンを参照します。

  5. 中央パネルでマージ結果を確認し、 適用 をクリックします。

生産性のヒント

競合しない変更を自動で適用

IntelliJ IDEA は、 マージ ダイアログから指示するのではなく、常に競合しない変更を自動的に適用するように構成できます。 これを行うには、 ツール | 差分とマージ 設定ページ Ctrl+Alt+S競合しない変更を自動的に適用 オプションを選択します。

中央ペインで変更を管理

中央ペインでの変更は、ガター内の変更マーカーの上にマウスを移動してクリックすると表示されるツールバーを使用して管理できます。 ツールバーは、変更された行の前の内容を示すフレームとともに表示されます。

変更ツールバー

例: 競合しない変更が複数あり、そのうちの 1 つまたは 2 つだけをスキップする必要がある場合、 競合しないすべての変更を適用 アクションを使用してすべての変更を同時に適用し、このツールバーの 元に戻す アクションを使用して不要な変更を元に戻す方が簡単です。

LF および CRLF の行末に関連する競合の処理

多くの場合、チームで作業し、同じリポジトリに貢献する人々は、異なるオペレーティングシステムを使用します。 Unix、Linux、macOS は LF},{ を使用し、Windows は CRLF を使用して行末をマークするため、行末に問題が発生する可能性があります。

IntelliJ IDEA は、 差分ビューアー の行末の不一致を表示するため、手動で修正できます。 Git でこのような競合を自動的に解決するには、Windows では core.autocrlf 属性を true に設定し、Linux と macOS では input に設定する必要があります (詳細については、 行末の処理(英語)を参照してください)。 Windows では git config --global core.autocrlf true を、Linux と macOS では git config --global core.autocrlf input を実行して、手動で構成を変更できます。

ただし、IntelliJ IDEA は自動的に設定を分析し、 CRLF をリモートリポジトリにコミットしようとしている場合は警告し、オペレーティングシステムに応じて core.autocrlf 設定を true または input に設定することをお勧めします。

LF},{ および CRLF 改行コード文字のスマート処理を有効にするには、 設定 ダイアログ Ctrl+Alt+S を開き、左側の バージョン管理 | Git ノードを選択します。 CRLF 改行コードがコミットされる前に警告する オプションを有効にします。

このオプションを有効にすると、 CRLF 区切り文字を使用してファイルをコミットしようとするたびに、影響を受けるファイルで関連する Git の属性(英語)を設定していない限り、IntelliJ IDEA は 改行コードに関する警告ダイアログ を表示します(この場合、IntelliJ IDEA は自分のしていることを明確に理解していると仮定し、このファイルを分析から除外します)。

改行コードに関する警告ダイアログ で、次のいずれかをクリックします。

  • そのままコミット は警告を無視し、 CRLF セパレータでファイルをコミットします。

  • 修正してコミット を使用して、オペレーティングシステムに応じて true または inputcore.autocrlf 属性を設定します。 その結果、コミット前に CRLF 改行コード文字が LF},{ に置き換えられます。

後でマージ時に競合する問題がどのように解決されたかを確認する必要がある場合は、 ログ タブの Git ツールウィンドウ Alt+9 で必要なマージコミットを探し、右側の コミットの詳細 ペインで競合するファイルを選択し、 the Show diff icon をクリックするか Ctrl+D を押してください。 詳細は、 変更のマージ方法の確認を参照してください。

マージの競合を解決する方法の詳細については、このビデオを参照してください。

2026 年 3 月 30 日