Git儲存內容的位置與方式
Git是一個工具,只要熟練掌握它的操作就能完成工作中的絕大多數任務。
我們很少會考慮Git歷史提交資料儲存在哪,又以何種方式儲存,下面對此進行一下介紹。
首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj = { webName: "螞蟻部落", address: "青島市南區" } obj.age = 4; console.log(obj.webName); console.log(obj.address); console.log(obj.age);
上面是一個物件直接量簡單演示,物件直接量以鍵/值對方式儲存資料,通過鍵可以獲取對應的值。
本質上Git儲存資料的方式也是如此,鍵就是資料內容sha-1值,值自然是物件內容。
在E盤git目錄下初始化一個全新的倉庫,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ cd /e/git
切換到git目錄。
[Shell] 純文字檢視 複製程式碼$ git init
初始化一個全新的倉庫,git目錄下除了.git目錄(預設隱藏)外別無它物。
.git目錄中的objects子目錄就是用來儲存資料的,截圖如下:
其中兩個子目錄是系統自動建立的,可以看到當前並沒有儲存任何資料。
下面開始向裡面儲存資料,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ echo "螞蟻部落" | git hash-object -w --stdin
程式碼執行效果截圖如下:
解析如下:
(1)."螞蟻部落"是要儲存的內容。
(2).git hash-object命令用來儲存資料物件。
(3).-w表示不僅計算出內容的sha-1值,而且會將資料儲存,否則只會給出sha-1值。
(4).--stdin表示內容是通過標準輸入裝置獲取的,比如我通過鍵盤輸入。
(5).第二行是儲存內容的sha-1值。
現在再來看一下.git/objects目錄中的內容,截圖如下:
多出了一個子目錄,名字是21,它的內容是:
21子目錄中有一個檔案,名為0a3e5558a2c25c0a577a3f2555c2f82e5529c6。
內容儲存位置總結如下:
(1).儲存於.git/objects目錄中。
(2).以sha-1值的前兩位作為子目錄名稱,儲存內容的檔名字為sha-1值的後38位。
現在我們開啟儲存內容的檔案,截圖如下:
儲存的並不是原始資料“螞蟻部落”,而是通過zlib壓縮的內容。
下面根據sha-1值這個鍵來檢視對應的值(也就是儲存的資料):
[Shell] 純文字檢視 複製程式碼$ git cat-file -p 210a3e5558a2c25c0a577a3f2555c2f82e5529c6
程式碼執行截圖如下:
相關文章
- String內部儲存方式與UnicodeUnicode
- 修改docker的預設儲存位置及映象儲存位置Docker
- Git Vim編輯器輸入內容、儲存和退出操作Git
- Docker配置本地映象與容器的儲存位置Docker
- 軟連結儲存內容的驗證
- html隨意拖動內容位置的兩種實現方式HTML
- 怎麼重新儲存ie中表單的內容!
- Git的儲存原理Git
- Git檢視暫存區index檔案內容GitIndex
- Git暫存區內容恢復到工作區Git
- 怎麼更改網頁上的內容並儲存網頁
- 誰能說說java記憶體的永久儲存區域中儲存的內容嗎?Java記憶體
- git將工作區內容加入到暫存區Git
- Java五種儲存位置Java
- Podman修改 image儲存位置
- Aspose.Slides.NET 19.2 解析ppt內容儲存svg 儲存ppt內部圖片IDESVG
- 修改docker映象儲存位置的方法Docker
- 如何檢視Control File中儲存的內容
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- 兩個修改Docker本地映象與容器的儲存位置的方法Docker
- MongoDB 儲存引擎與內部原理MongoDB儲存引擎
- 簡單介紹nacos單機本地配置檔案儲存位置方式
- 通過SQL語句提取儲存過程中的內容SQL儲存過程
- 使用LocalStorage實現Form表單內容本地儲存ORM
- 查詢某個儲存過程有哪些內容儲存過程
- 獲取某庫某個儲存過程內容儲存過程
- Docker: 如何修改 Docker 的映象儲存位置Docker
- Python 中整型物件儲存的位置Python物件
- 系統統計資訊的儲存位置
- win10桌面儲存位置怎麼修改_win10修改桌面儲存位置教程Win10
- git修改歷史內容的方法Git
- Git提交文件部分內容Git
- Git提交內容規範Git
- Spark(16) -- 資料讀取與儲存的主要方式Spark
- 儲存過程語法與Java程式的呼叫方式儲存過程Java
- Mac儲存檔案找不到要儲存的位置怎麼設定Mac
- 轉摘_儲存型別與連線方式型別
- git儲存使用者名稱與密碼Git密碼