概要
diff3は、共通の祖先ファイル(BASE)と2つの変更されたファイル(MINE, THEIR)間の変更を比較して、マージ競合の解決を支援します。特に、2人のユーザーが同じ元のファイルを独立して変更した場合に役立ちます。
主な特徴
- 3つのファイル間の違いの分析
- マージ競合の特定と表示
- 元のファイル(BASE)を基準とした変更点の分析
- マージされた結果の出力が可能
主なオプション
diff3コマンドの主なオプションは、比較結果の形式と内容を制御するために使用されます。
出力形式とマージ
比較とフィルタリング
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`diff3` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
diff3コマンドの様々な使用例を通じて、3つのファイルの比較とマージ方法を理解できます。
基本的な3ファイル比較
diff3 file1.txt file2.txt file3.txt
file1.txt(BASE), file2.txt(MINE), file3.txt(THEIR)の3ファイル間の違いを比較します。
3ファイルのマージと競合表示
diff3 -m original.txt my_version.txt their_version.txt
3ファイルをマージし、競合が発生した部分は標準的な競合マーカーと共に表示します。この結果は、直接編集して競合を解決するために使用できます。
マージ結果を新しいファイルに保存
diff3 -m original.txt my_version.txt their_version.txt > merged_file.txt
マージされた内容をmerged_file.txtファイルに保存します。このファイルには競合マーカーが含まれる場合があります。
重複する変更のみ表示
diff3 -x file1.txt file2.txt file3.txt
3つのファイルすべてで変更された部分、つまりマージ競合が発生する可能性のある箇所のみを簡潔に表示します。
ヒントと注意点
diff3は強力なツールですが、その特性を理解して使用することが効果的です。
競合マーカーの理解
diff3 -mオプション使用時に表示される競合マーカーは、以下の意味を持ちます。
- <<<<<<<: 現在(MINE)バージョンの開始
- |||||||: 共通祖先(BASE)バージョンの開始
- =======: 両バージョンの区切り線
- >>>>>>>: 受信(THEIR)バージョンの終了
活用ヒント
- **バージョン管理システム:** Gitのようなバージョン管理システムでマージ競合が発生した場合、diff3の原理を理解すると手動での競合解決に役立ちます。
- **バックアップ:** 重要なファイルをマージする前には、必ずバックアップを作成しておくことをお勧めします。
- **ファイル順序:** diff3は `BASE MINE THEIR` の順序でファイルを指定するのが一般的です。この順序を守ると、競合マーカーの解釈が容易になります。