1 本地倉(cāng)庫(kù)結(jié)構(gòu)
- git項(xiàng)目有3個(gè)主要部分組成
* 工作區(qū)(working directory / working tree)
項(xiàng)目當(dāng)前版本對(duì)應(yīng)的所有文件,這些文件是從git版本庫(kù)中壓縮后的數(shù)據(jù)庫(kù)中提取出來(lái),放入該位置的(就是我們項(xiàng)目當(dāng)前版本的代碼)
暫存區(qū)(staging area)
本質(zhì)就是一個(gè)文件,位于在git版本庫(kù)中,主要用于保存下次提交文件的信息;通俗上,我們稱之為索引
版本庫(kù)(git directory / repository)
用于存儲(chǔ)元數(shù)據(jù)和文檔數(shù)據(jù)庫(kù)的地方,默認(rèn)在項(xiàng)目的.git隱藏目錄中
2 倉(cāng)庫(kù)各部分如何協(xié)作
首先在工作區(qū)修改文件(當(dāng)前開發(fā)的代碼)
將修改后的文件放入git暫存區(qū)中,準(zhǔn)備提交到git版本庫(kù)中去
-
執(zhí)行提交操作,將暫存區(qū)中的文件作為一個(gè)快照保存到git版本庫(kù)中
3 文件狀態(tài)
untracked : 工作區(qū)中從未被提交至?xí)捍鎱^(qū)或版本庫(kù)中文件的狀態(tài)
new : untracked狀態(tài)的文件提交至?xí)捍鎱^(qū)后,文件狀態(tài)變?yōu)閚ew
tracked : new狀態(tài)的文件提交至版本庫(kù)后,文件狀態(tài)變?yōu)閠racked狀態(tài)
modified : 文件已有一個(gè)或多個(gè)版本保存在版本庫(kù)中,此時(shí)文件被修改,未加入暫存區(qū),文件狀態(tài)為modified狀態(tài)
staged : modified狀態(tài)的文件提交至?xí)捍鎱^(qū)后,文件狀態(tài)變?yōu)閟taged
-
committed : staged狀態(tài)的文件提交至版本庫(kù)后,文件狀態(tài)變?yōu)閏ommitted狀態(tài)