使用git基本流程是
image.png
對三個區(qū)域使用git status命令鞭衩,如果在工作區(qū),那么該文件會顯示紅色玉雾,表示沒有被git管理起來帆疟,在暫存區(qū)會顯示綠色,表示被git管理椭懊,如下圖(readme.txt)
image.png
對文件使用诸蚕,add命令會產(chǎn)生一個blob對象,commit會產(chǎn)生一個commit對象灾搏。
而commit對象包含一個tree對象挫望,而tree對象包含blob對象。一個commit可以代表整個文件狂窑。
image.png
Git的分支在refs文件夾下面,heads存的是本地分支桑腮,remotes存的是遠程分支
image.png
image.png
而GIT是如何知道當前分支是哪個呢泉哈,就在,git目錄 HEAD文件,指向的分支即為當前分支破讨。
image.png
image.png
這個值是當前commit對象的hash值,即可指向當前文件提陶。
調(diào)用git cat命令查看dec這個hash值得內(nèi)容烫沙,里面保存的一個tree對象
image.png
而這個tree對象指向blob對象,這個blob對象內(nèi)容即是文件的內(nèi)容隙笆。
而GIT 的head就是指向當前的分支锌蓄,即當前的commit(commit就代表當前的文件倉庫),如果改變分支就是改變HEAD的指向的分支撑柔,分支一旦改變瘸爽,分支指向的commit就改變,文件倉庫就改變铅忿。