git底層實現

2021-09-24 22:02:03 字數 706 閱讀 7352

通過使用本地git看一下git的add,commit是在幹什麼,分支又是什麼

add、commit在幹什麼

git中有乙個物件資料庫,存放三種物件blob、tree和commit

find .git/objects/ -type f // 檢視所有物件
blob是檔案內容,tree是檔案目錄結構,以下幾條命令實現一步步將某資料提交

其中hash可以取前六位

git hash-object -w $ // 將sth寫入物件資料庫(blob)

git update-index (--add) $ // 將sth放入(更新)快取區,形成新的tree物件

git commit-tree $ -m "$" // 將某個tree提交,形成新的commit物件

git cat-file $ // 檢視某個commit物件相關資訊

分支是什麼

echo "$" > .git/refs/heads/$
這就建立了分支名→某次提交的引用

像下面這樣寫也可以

git update-ref refs/heads/master $
分支其實就是某個commit的引用而已

Git 底層原理

二.git 目錄結構 三.git add 與 git commit 簡單原理 四.建立與合併分支簡單原理 五.git rebase 簡單原理 六.開始從底層入手 git 七.git add 命令底層原理 八.git add 和 git commit 中間的操作 tree 物件的生成 九.git co...

git底層命令

cd d git 進入d git目錄下 git init 初始化 git config user.name hxd 建立使用者 git config user.email hxd 163.com 建立使用者郵件 cat git config 檢視使用者資訊 echo 11111 hxd.log 建立...

GIT底層原理(一)

暫存操作會對先每乙個檔案計算校驗和checksum git 使用sha 1 演算法計算資料的校驗和,通過對檔案的內容或目錄的結構計算出乙個sha 1 雜湊值,作為指紋字串,該字串由40 個十六進製制字元,並將此結果作為資料的唯一標識和索引 然後把當前版本的檔案快照儲存到本地git 倉庫中 git 使...