git diff
関連していますかdiff
?
git diff
ベースですかdiff
?はいコマンドライン構文
git diff
〜のように一つdiff
?一つを学ぶことは、他のものを使うのに多くの役に立ちますか?出力ファイルは同じ形式に従いますか?同時に
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バイナリパッチをサポート