テキストマージ

テキストマージ は、ファイルの 2 つのバージョンに含まれる変更を、1 つの編集可能な結果にまとめます。競合 は、2 つの変更が両立せず、どちらを採用するか判断が必要なときに発生します。

レイアウト

この画面には、同じファイルの 3 つのバージョンが表示されます。

挿入ギャップ付きテキストマージ

マージのレイアウトは 2 種類あります。

切り替えには 表示 メニュー、または右上のセグメントコントロールを使います。

ベース

さらに 4 つ目のバージョンとして ベース があります。これは両側の変更が始まる前の元のバージョンです。これは Git の 3-way merge モデルと一致します。

Local → Base ← Remote
          ↓
        Result

ABDiff では、中央ペインを結果とベースの間で切り替えられるため、何が変わったのかを理解しやすくなります。

競合とは何か

競合は、両側が同じ行を異なる形で変更したときに起こります。たとえば元の値が “blue” で、片方が “green”、もう片方が “red” に変えた場合です。Git はどちらが正しいか判断できないため、手動での解決が必要になります。

互換性のない変更

これは 2 人が同じ行を同時に編集したときに起こります。変更が重ならなければ Git が自動的にマージしますが、重なっている場合は手動で解決しなければなりません。

競合を解決する

Git を設定済み であれば、Git が競合を見つけたときに ABDiff が起動します。結果エリアは未解決のまま残るため、その内容を決めるのがあなたの作業です。方法は 3 つあります。

任意の行を右クリックすると利用できる操作が表示されます

ヒント:

解決済みにする

終わったらファイルを保存します(ファイル ▸ 保存 または ⌘S)。これにより Git に競合が解決済みだと伝わります。

競合を解決したくない場合は、保存せずにそのまま閉じてください。

編集と移動

ナビゲーション

操作 ショートカット
前 / 次の行 ↑ / ↓
前 / 次のペイン ← / →
最初 / 最後の行へ移動 ⌘↑ / ⌘↓
前 / 次の変更 ⌥↑ / ⌥↓
前 / 次のハンク ⌥↑ / ⌥↓
別のペインへ切り替え

コピー

操作 ショートカット
選択を結果へコピー ⌘← ⌘→
選択を拡張 ⇧↑ / ⇧↓
自分の / 相手のバージョンで解決 ⇧⌘→ / ⇧⌘←

選択中の行 は灰色の矩形で表示されます。ハンク は、連続した競合または変更のブロックです。コピー操作は、結果ペインを変更する場合にのみ有効で、かつ選択が実際の行にある必要があります。Shift クリックでも同じペイン内で現在の選択を拡張できます。

変更をコピーするには:

すべてのコピー操作は ⌘Z で取り消せます。

編集

操作 ショートカット
選択中の結果行の編集を始める Return
任意の結果行を直接編集する 行をダブルクリック
確定して次の編集可能行へ進む Return(編集中)
確定して編集モードを終了する Command-Return
現在の行バッファを破棄して編集モードを終了する Esc または Command-.

編集は行のダブルクリックでも開始できます。すべての編集操作は ⌘Z で取り消せます。

表示オプション

テキストマージには、比較の計算方法や表示方法を変更するオプションがあります。これらはオプションメニューから利用できます。

関連トピック