Git学习笔记(2) --- References探寻
在上一篇文章Git學(xué)習(xí)筆記(1) --- 內(nèi)部存儲(chǔ)模式中,已經(jīng)說了git的內(nèi)部存儲(chǔ)模式以及.git/objects文件中的內(nèi)容,這一篇文章主要講講git內(nèi)部的references。
References簡介
git 除了會(huì)存儲(chǔ)提交歷史,還會(huì)存儲(chǔ)當(dāng)前倉庫里有哪些分支,哪些tag,以及他們各自對(duì)應(yīng)的commit id;還有當(dāng)前的HEAD的指向。而這些都是references的工作。
references的本質(zhì)是:用于存儲(chǔ)指向特定commit的指針。主要包括以下幾個(gè)內(nèi)容:
References內(nèi)容
braches文件夾會(huì)存儲(chǔ)當(dāng)前倉庫所有的分支,并為每一個(gè)分支創(chuàng)建一個(gè)單獨(dú)的文件,分支名就是文件名,如上圖,當(dāng)前倉庫就只有一個(gè)master分支。
那master文件里面存儲(chǔ)的是什么呢?
從上圖可以看出,master分支當(dāng)前的最新的提交是adf0e13,所以master文件存儲(chǔ)的就是最新提交的commit id。另外,此時(shí)HEAD指針是直接指向master,和master對(duì)應(yīng)的是同一個(gè)commit,所以此時(shí)HEAD文件內(nèi)容就是:
如果HEAD指向commit和其他的分支最新提交是一致的,那么HEAD文件的內(nèi)容就和上圖類似,不同就是分支名;如果HEAD是指向其他的commit,與所有的分支指向的都不一致時(shí)(例如checkout到之前的提交),此時(shí)HEAD文件直接儲(chǔ)存所指向的commit id,與master文件類似。
此外,tags文件的存儲(chǔ)模式與braches的存儲(chǔ)模式一致,因此不再贅述。
如果對(duì)本文有什么意見和建議,歡迎討論和指正!!!
總結(jié)
以上是生活随笔為你收集整理的Git学习笔记(2) --- References探寻的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]mysql优化——show pro
- 下一篇: 用 Python脚本实现数据库数据恢复