git diff 輸出格式詳解

admin發表於2018-06-13

本文僅關注git diff 輸出內容格式的含義,並不會介紹gid diff具體使用語法。

有名稱為readme.txt的檔案,暫存區內容如下:

[HTML] 純文字檢視 複製程式碼
螞蟻部落一
螞蟻部落二
螞蟻部落三
螞蟻部落四
螞蟻部落五
螞蟻部落六
螞蟻部落七
螞蟻部落八
螞蟻部落九
螞蟻部落十

將工作區中對應檔案的第六行修改為"螞蟻部落",具體如下:

[HTML] 純文字檢視 複製程式碼
螞蟻部落一
螞蟻部落二
螞蟻部落三
螞蟻部落四
螞蟻部落五
螞蟻部落
螞蟻部落七
螞蟻部落八
螞蟻部落九
螞蟻部落十

現在使用如下命令:

[Shell] 純文字檢視 複製程式碼
$ git diff

上述命令將會比較暫存區和工作區檔案的差別,截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201803/12/150847i1s31wsgbcwcwj1c.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

下面逐行介紹一下輸出內容的含義:

[Shell] 純文字檢視 複製程式碼
index 95a6bf0..46e608d 100644:

95a6bf0表示暫存區的雜湊值,100644表示物件模式,100表示普通檔案,644代表一個許可權。

[Shell] 純文字檢視 複製程式碼
--- a/readme.txt
+++ b/readme.txt

---表示變化前的版本。

+++表示變化後的版本。

[Shell] 純文字檢視 複製程式碼
@@ -3,7 +3,7 @@

標識內容變動發生的區域:

"-3,7":減號表示變化前的檔案,3表示第三行,7表示連續七行,也就是從第三行(包括)開始,連續7行。

"+3,7":加號表示變化後的檔案,3表示第三行,7表示連續七行,也就是從第三行(包括)開始,連續7行。

位置:如何確定3和7這個位置,原則是除去當前檔案變動的一行外,上下各取3行。

a:3:{s:3:\"pic\";s:43:\"portal/201803/12/153349xe6zpfpf6xepxfp3.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

(1).空格開頭標識行行內容無變化。

(2).減號(-)開頭標識原來版本檔案刪除的行。

(3).加號(+)開頭標識修改後版本檔案新增的行。

相關文章