「git diff」は「diff」に関連していますか?

「git diff」は「diff」に関連していますか?

git diff関連していますかdiff

  1. git diffベースですかdiff

  2. はいコマンドライン構文git diff〜のように一つdiff?一つを学ぶことは、他のものを使うのに多くの役に立ちますか?

  3. 出力ファイルは同じ形式に従いますか?同時にgit patch使用できますかpatch? (ありますかgit patch?と何が関係していますかpatch?)

ありがとうございます。

答え1

ファイル形式は相互運用可能です。 Gitは最良の形式を使用し、diff -u.itはそれを拡張して他の種類の変更も表します。

これに対応するpatchのはgit apply、インデックスの変更を段階的に調整し、それを作業ツリーに適用することです。

参照文書では明示的な比較をしていないようですが、git applyより厳しいものだと思います。patch有効または無効にできるいくつかのテスト/バグが挙げられています。

リファレンスドキュメントでは、オプションの1つを使用すると、gitリポジトリの外部でも「GNUパッチの置き換え」として使用できることを示唆しています。

答え2

git-diffはdiffよりも多くの機能を提供します。 diffは次のような行を生成するため、出力パッチが(いくつかの追加オプションなしで)相互運用可能であるとは思いません。

diff -ruNa dir1/file1.txt dir2/file1.txt

そしてgit-diffは次のような行を生成します

diff --git a/dir1/file1.txt b/dir2/file1.txt

--no-prefix(他のオプションを使用して切り替えることができるソースとターゲットのプレフィックスに注意してください。)

git-diffの追加機能は次のとおりです。

  • 移動したファイルや名前が変更されたファイルを録音できます。違いはあり得ない

  • 再帰モードの使用、diff統合、およびデフォルトで新しい/削除されたファイルの処理(diff -ruN

  • 違いを見つけるためにさまざまなアルゴリズムをサポートしています。

  • バイナリデータをASCIIでエンコードするgitバイナリパッチをサポート

関連情報