git儲存原理

2021-10-02 01:29:32 字數 892 閱讀 8011

一, git 中的儲存分為四種物件分別是:commit物件,tag物件,tree物件,blob物件

commit物件:每個執行git commit 時都會產生;

tag物件:執行git tag時會產生;

tree物件:執行git commit時會產生乙個頂級樹物件,就是對應著目錄

blob物件:具體儲存資料的檔案

git倉庫中會又乙個隱藏檔案.git使用ls -a可以檢視

其中有個objects資料夾儲存的就是每個物件,

執行find .git/objects -type f 可以檢視每個物件

這裡包含了上述的四種物件。

使用git cat-file -p hash碼,可以檢視物件資訊

可以看到這裡包含了頂級樹物件,上一次提交的commitid和其他資訊。

可以一直使用git cat-file -p 直到看到了blob物件的內容。

二,git中儲存物件是通過key,value形式的,key是通過內容hash的到的,value是具體的內容(zlib壓縮的),所以即使檔案的檔名,位置改變了,還是不會產生新的blob物件。

大致結構如下圖:類似樹的結構

三,git中的每個分支其實就是乙個引用,儲存在.git/refs/ 下,這裡儲存著很多分支檔案,內容就是最新一次提交的commitid,然後.git/head下儲存著當前的分支。

git 儲存原理

git與傳統的版本控制工具的區別在於 分布式。每乙個開發者都可以有自己的版本庫,可以對自己的版本庫提交,修改。對本地庫的修改可以在斷網的情況下進行。同時,專案組還有乙個中心庫,就git是分布式的,專案組也必須保證有乙份最最 權威 的 在中心庫,這份 就是穩定版本,是最終可以上線的版本。雖然git是分...

git基礎原理

分布式管理與集中式管理 比較一 比較二 git的工作區域與檔案不同的狀態 每提交一次,都會包含乙個指向前乙個提交物件的指標,預設為master,並且自動向前移動。master 指向新的版本 新建乙個分支 git branch name 時,例如testing分支 git branch testing...

git原理簡介

git 究竟是怎樣的乙個系統呢?請注意,接下來的內容非常重要,若是理解了 git 的思想和基本工作原理,用起來就會知其所以然,游刃有餘。在開始學習 git 的時候,請不要嘗試把各種概念和其他版本控制系統 諸如 subversion 和 perforce 等 相比擬,否則容易混淆每個操作的實際意義。g...