如何理解git的快照?
https://blog.csdn.net/m0_37075681/article/details/83218592
如何理解git的快照?
什么是快照
快照怎么進行
git和CVS,、Subversion等的區別
最近開始學習git的使用,發現snapshot這個術語,看得是朦朦朧朧,感覺理解這個詞,又感覺不是很懂,所以就去網上搜索資料,嘗試用自己的理解敘述出來。
什么是快照
In computer systems, a snapshot is the state of a system at a particular point in time.
本人覺得快照并沒含有’速度快’的意思。快照應該理解為整個系統或者應用在某個時刻的狀態記錄。例如,假定在A時刻,你的git工作空間分別有file1和file2,到B時刻的時候,你對file1進行了修改。
隨后,在你準備進行一次commit之前,git就已經準備好快照了,這個快照記錄了當前工作空間中指向未修改文件file2的指針和已經修改的file2數據(即當前時刻工作空間的文件數據狀態)。因此,commit的時候,就等同于保存了一次快照。
快照怎么進行
git會讀取當前工作空間的所有數據,進行數據預存,再重新調整。它會和上一次的快照版本的內容進行比較,對于沒有改變的文件數據,git會把當前預存中冗余文件的數據去除掉,改為保留指向上一個版本中該文件數據的指針,對于有差異的文件數據就會保留下來,最終再把數據完整保存下來,這才算是執行了一次快照。
git和CVS,、Subversion等的區別
兩者的差異在于對待保存數據的方式。前者是記錄和組裝一系列快照流的微型系統,關心文件數據的整體是否發生變化。每次commit的時候保存一次快照,而每個快照都包含了完整的數據;后者則關心文件內容的具體差異。第一次保存了完整的數據,往后每次保存的都不是完整的數據,只會記錄基于之前的版本和現在兩者的變化信息,對于此外沒有變化的都不會去記錄。
本文參考:
.?git
.?quoar
總結
以上是生活随笔為你收集整理的如何理解git的快照?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android系统framework的b
- 下一篇: 一张图看明白Git的四个区五种状态