「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.它還對其進行了擴展以表示其他類型的更改。

相當於patchgit apply.它暫存索引中的變更並將其套用到工作樹。

我記得git apply比 更嚴格patch,儘管參考文件似乎沒有明確的比較。它確實提到了幾個可以啟用或停用的測試/錯誤。

參考文件還建議它可以用作“GNU 補丁的替代品”——即使在 git 存儲庫之外,如果您使用某個選項的話。

答案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 -ruN)

  • 支援不同的演算法來找出差異

  • 支援 git 二進位補丁,將二進位資料編碼為 ASCII

相關內容