1. ホーム
  2. git

[解決済み] Gitのdiff出力にある「@@ -1 +1 @@」の意味とは?

2022-08-22 02:58:36

質問

からの戻り値からデータを収集しています。

git diff <commitId>..<commitId>

に遭遇し @@ -1 +1 @@

それが何を物語っているのかがわからない。Googleで少し検索してみましたが、無駄でした。

どのように解決するのですか?

差分ハンクの識別子を統一するのです。これは 文書化された によって、GNU Diffutilsによって提供されています。

統一された出力形式は、以下のような2行のヘッダから始まります。

--- 

from-ファイル from-ファイル変更時刻


+++ 

to-ファイル to-ファイル変更時刻

タイムスタンプは次のようになります。 2002-02-21 23:30:39.942229878 -0800 のように、日付、端数秒を含む時刻、タイムゾーンを表します。端数タイムスタンプをサポートしないホストでは、端数秒は省略されます。

ヘッダの内容は --label=label オプションで変更できます。 代替名 .

次に、1つまたは複数の差分の塊が来ます。それぞれの塊は、ファイルが異なる1つの領域を示しています。統一形式のハンクは次のようになります。

@@ 

ファイル行番号からファイル行番号へ

 @@
 

どちらかのファイルからの行数


どちらかのファイルから

...

ハンクが1つの行を含む場合、その開始行番号のみが表示されます。そうでない場合は、行番号は次のようになります。 start,count . 空のhunkは、そのhunkに続く行から始まるとみなされます。

ハンクとそのコンテキストが2行以上ある場合、その行番号は次のようになります。 start,count . そうでない場合は、その終了行番号のみが表示されます。空のhunkは、そのhunkの前の行で終了するとみなされます。

両方のファイルに共通する行は、スペース文字で始まります。2つのファイルで実際に異なる行は、左の印刷欄に以下のいずれかの指示文字が表示されます。

  • +

    最初のファイルのここに一行が追加されました。
  • -

    最初のファイルからここで一行が削除されました。