直接記錄快照栽烂,而非差異比較
-
svn\csv等是保存的信息看做一組基本文件和每個(gè)文件隨著時(shí)間逐步積累的差異
儲(chǔ)存每個(gè)文件與初始版本的差異 -
Git 在保存項(xiàng)目狀態(tài)時(shí)夏志,對(duì)全部文件制作一個(gè)快照并保存這個(gè)快照的索引。為了高效,如果文件沒(méi)有修改捶惜,Git 不在重新儲(chǔ)存該文件檩赢,只是保留一個(gè)連接指向之前的存儲(chǔ)的文件昼蛀。這是重要的區(qū)別雀瓢。
Git 存儲(chǔ)項(xiàng)目時(shí)隨著時(shí)間改變的快照
近乎所有的操作都是本地執(zhí)行
Git 保證完整性
- Git 中所有數(shù)據(jù)在存儲(chǔ)錢都計(jì)算校驗(yàn)和梅掠,然后以校驗(yàn)和來(lái)引用酌住。
- 計(jì)算校驗(yàn)和的機(jī)制叫做
SHA-1
散列
Git 一般只添加數(shù)據(jù)
三種狀態(tài)
-
Git 文件有三種狀態(tài)
- 已提交【committed】:表示數(shù)據(jù)已經(jīng)安全的保存在本地?cái)?shù)據(jù)庫(kù)中
- 已修改【modified】:修改了文件,但是還沒(méi)有保存到數(shù)據(jù)庫(kù)中
- 已暫存【staged】:對(duì)一個(gè)已修改的文件的當(dāng)前版本做了標(biāo)記阎抒,使之在下次提交的時(shí)候提交到快照中酪我。
-
Git 項(xiàng)目的三個(gè)工作區(qū)
Git 三個(gè)工作區(qū)Repository: 保存項(xiàng)目的元數(shù)據(jù)和對(duì)象數(shù)據(jù)庫(kù)的地方。
Working Directory: 對(duì)項(xiàng)目的某個(gè)版本提取出來(lái)的內(nèi)容且叁。
-
Staging Area: 是一個(gè)文件都哭,保存了下次提交的文件列表信息。有的時(shí)候也成為
index 索引
?