Unified Diff形式のファイルヘッダー
Unified Diffの---と+++ファイルヘッダー、diffコマンドライン、indexラインについて学びます。各部分の意味と必要な場合を解説します。
Unified Diff Format
詳細な説明
Unified Diffのファイルヘッダー
完全なUnified Diffは、比較対象のファイルを識別するヘッダー行で始まります。Diffパッチ適用ツールではこれらのヘッダーは必須ではありませんが、GitやOthersツールからのパッチを扱う際に理解しておくと役立ちます。
完全なヘッダー構造
diff --git a/src/utils.js b/src/utils.js
index 3a4b5c6..7d8e9f0 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -1,5 +1,7 @@
ヘッダーの構成要素
| 行 | 目的 |
|---|---|
diff --git a/... b/... |
diffコマンドとファイルの識別(Git固有) |
index 3a4b5c6..7d8e9f0 100644 |
Gitのblobハッシュとファイルモード |
--- a/src/utils.js |
オリジナル(旧)ファイルのパス |
+++ b/src/utils.js |
変更後(新)ファイルのパス |
特殊なファイル名
/dev/null— ファイルが作成された(--- /dev/null)または削除された(+++ /dev/null)ことを示すa/とb/プレフィックスは旧バージョンと新バージョンのGit規約
最小限の必要フォーマット
Diffパッチ適用ツールでは、Hunkヘッダー(@@)とDiff行のみが必要です:
@@ -1,3 +1,4 @@
line 1
line 2
+new line
line 3
---、+++、diff行はオプションですが、明確さのために推奨されます。
ユースケース
複数のファイルのDiffを含むGitプルリクエストからパッチを抽出しています。ファイルヘッダーを理解することで、特定のファイルの変更を分離して個別に適用できます。