1

diffと で作成されたファイル/パッチの形式の違いは何だろうかgit-diff
diffは3つ(「通常」、「コンパクト」-c、「統合」-u)があることを知っています。

ただし、いくつかの違いがあり、場合によっては自由に交換できない場合がgit diffありdiffます。そう:

  1. 同じファイルに対してgit diffとを使用できるかどうかは、何に依存しますか?diff
  2. また、フォーマットの違いは何ですか?
  3. コマンドを交換できない場合 (1. を参照)、他のコマンドで使用できるように、ファイルを他の形式に変換するにはどうすればよいですか?
  4. コマンドを交換できる場合 (1. を参照): そうすることをお勧めしますか?
  5. 2 つのコマンドで作成されるファイルに他に顕著な違いはありますか?
4

1 に答える 1

2
  1. 同じファイルに対してgit diffとを使用できるかどうかは、何に依存しますか?diff

単純に、ファイルが git リポジトリの作業ツリーにある場合、 を使用git diffしてそのファイルの変更を表示できます (インデックスや blob オブジェクトのように、git リポジトリによって参照されるのと同じファイルに対して)。これは、ファイルを比較する
' ' とは異なります(つまり、git リポジトリで使用される git diff のように 1 つだけでなく、2 つのファイルが必要です)。diff

コメントでhvdが指摘しているように

git diff任意の作業ツリーの外側で使用して、2 つのファイルを渡すことができます。
したがって、使用できるgit diffほとんどすべての状況で使用できますdiff
逆は正しくない

 git diff --color-words --no-index file1 file2

  1. また、フォーマットの違いは何ですか?

git diff任意の diff 形式 (統合、生、...) をエミュレートできます。
git固有の形式もあります(--summary--stat、 ...)

以下も参照してください。

Agit diffには、「類似性インデックス」を含む git ヘッダーが含まれます。
差分の各チャンクのハンク表示は、 diff -u と非常によく似ています。


  1. コマンドを交換できない場合 (1. を参照)、他のコマンドで使用できるように、ファイルを他の形式に変換するにはどうすればよいですか?

を raw 形式に変換するgit diffか、 raw: でパッチを適用できます--patch-with-raw
逆も可能です: git repo に diff を適用できます


  1. コマンドを交換できる場合 (1. を参照): そうすることをお勧めしますか?

git がインストールされていない場合です (前の例を参照) 。


  1. 2 つのコマンドで作成されるファイルに他に顕著な違いはありますか?

diffいいえ:またはによって生成されたパッチを適用した結果はgit diff同じになるはずです。

于 2015-11-15T10:35:36.033 に答える