如何理解git的快照?

2021-09-13 03:07:18 字數 748 閱讀 8354

最近開始學習git的使用,發現snapshot這個術語,看得是朦朦朧朧,感覺理解這個詞,又感覺不是很懂,所以就去網上搜尋資料,嘗試用自己的理解敘述出來。

本人覺得快照並沒含有'速度快'的意思。快照應該理解為整個系統或者應用在某個時刻的狀態記錄。例如,假定在a時刻,你的git工作空間分別有file1和file2,到b時刻的時候,你對file1進行了修改。

隨後,在你準備進行一次commit之前,git就已經準備好快照了,這個快照記錄了當前工作空間中指向未修改檔案file2的指標和已經修改的file2資料(即當前時刻工作空間的檔案資料狀態)。因此,commit的時候,就等同於儲存了一次快照。

git會讀取當前工作空間的所有資料,進行資料預存,再重新調整。它會和上一次的快照版本的內容進行比較,對於沒有改變的檔案資料,git會把當前預存中冗餘檔案的資料去除掉,改為保留指向上乙個版本中該檔案資料的指標,對於有差異的檔案資料就會保留下來,最終再把資料完整儲存下來,這才算是執行了一次快照。

兩者的差異在於對待儲存資料的方式。前者是記錄和組裝一系列快照流的微型系統,關心檔案資料的整體是否發生變化。每次commit的時候儲存一次快照,而每個快照都包含了完整的資料;後者則關心檔案內容的具體差異。第一次儲存了完整的資料,往後每次儲存的都不是完整的資料,只會記錄基於之前的版本和現在兩者的變化資訊,對於此外沒有變化的都不會去記錄。

本文參考:

.

git. quoar

快照是什麼,快照如何儲存?

title 快照是什麼,快照如何儲存?本文內容 快照是什麼?為什麼使用快照?有什麼優點和缺點?快照儲存技術。問題 在學習版本控制工具git時,gitbook中提到了 直接記錄快照,而非差異比較 對 快照 概念不了解。in computer systems,a snapshot is the stat...

Git命令之快照基礎

git add命令將內容從工作目錄新增到暫存區 或稱為索引區 以備下次提交。當git commit命令執行時,預設情況下它只會檢查暫存區域,因此git add是用來確定下一次提交時快照的樣子的。主要作用有 跟蹤新檔案 暫存已修改的檔案 合併時把有衝突的檔案標記為已解決狀態。git add使用檔案或目...

如何清除VMware Server快照檔案?

andrew kutz 譯者 techtarget中國 英文 大 中 小 快照 磁碟 techtarget中國原創 上文 我們對在vmware server如何刪除快照進行了簡單地介紹。這些步驟對於從執行在windows xp sp2上的虛擬機器刪除快照是有效的,不過這些步驟可以應用在任何作業系統上...