1、基於版本快照的資料儲存
git將其所管理的資料視為乙個微型檔案系統的一組快照,它儲存的不是檔案的變化或者差異,而是一系列不同時刻的檔案快照。每次提交或在git中儲存專案的狀態時,git基本上會抓取一張所有檔案當前狀態的快照,然後儲存乙個指向該快照的引用。出於效率的考慮,如果檔案並沒有發生變動,git則不會再重新儲存檔案,而只是留下乙個指向先前已儲存過的相同檔案的鏈結。git更多的是將資料作為乙個快照流。
2、如何理解提交物件、快照、head、分支等概念及其之間的關係?
名詞概念
提交物件
包含指向某次提交所產生的樹物件(記錄著專案的目錄結構和 blob 物件(儲存著檔案快照)索引)的指標和所有提交資訊
快照可以簡單理解為:專案在某個版本時的備份
分支指向提交物件的可變指標
head
指向當前所在的本地分支的指標
3、三棵樹模型
這裡所謂的「樹」實際上指的是」檔案的集合「,並非特定的資料結構。作為乙個系統,git借助一般操作來管理及操作這三棵樹,如下表所示:樹用途
head
最近提交的快照,下次提交的父提交
索引區預計的下一次提交的快照
工作目錄
沙盒三個課樹之間的關係
ElasticSearch基本概念及原理
起源 lucene elasticsearch主要功能 索引結構 目前使用中,大多數都是乙個index,對應乙個type,在es 6.x版本中,乙個索引只允許存在乙個 type,後續版本會刪掉這個type的概念。settings定義不同的資料分布 索引的不同語義 索引 動詞 文件到elasticse...
CaChe基本概念及工作原理
計算機中程式執行時所有的指令和資料都是從儲存器中取出來執行的。儲存器是計算機系統中的重要組成部分,相當於計算機的倉庫,用來存放各類程式及其處理的資料。因此儲存器的容量和效能應當隨著處理器的速度和效能的提高而通過提高,以保持系統效能的平衡。然而在過去的 20 多年中,隨著時間的推移,處理器和儲存器在效...
Git 札記(三)Git基本概念及配置
git 配置 很多時候使用 git 時,僅僅使用常用的幾條命令,比如 git add git commmit m commit git push origin master,但並沒有真正的理解git,若能理解git的思想和基本工作原理,用起來會知其所以然,游刃有餘。直接記錄快照,而非差異對比 其他版...