中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

git的pack文件有什么作用

發布時間:2022-07-01 13:41:45 來源:億速云 閱讀:971 作者:iii 欄目:軟件技術

本文小編為大家詳細介紹“git的pack文件有什么作用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“git的pack文件有什么作用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

在git中,pack文件可以有效的使用磁盤緩存,并且為常用命令讀取最近引用的對象提供訪問模式;git會將多個指定的對象打包成一個成為包文件(packfile)的二進制文件,用于節省空間和提高效率。

本文操作環境:Windows10系統、Git2.30.0版、Dell G3電腦。

git的pack文件有什么用

Git的pack文件經過精心構造,可以有效地使用磁盤緩存,并為常用命令和讀取最近引用的對象提供“不錯”的訪問模式。

Git的包文件格式相當靈活(見文檔/技術/包,format.txt,或將打包文件在Git的社區圖書)。

打包文件以兩種主要方式存儲對象:“未刪除”(獲取原始對象數據并進行壓縮壓縮)或“刪除”(針對某個其他對象形成增量,然后對生成的增量數據進行壓縮壓縮)。

數據包中存儲的對象可以按任何順序排列(不必(不必)按對象類型,對象名稱或任何其他屬性排序),并且可以針對相同類型的其他任何合適的對象制作已刪除的對象。

Git的pack-objects命令使用了幾種啟發式方法,可以為常見命令提供出色的參考位置。

這些啟發式方法既控制了已刪除對象的基礎對象的選擇,又控制了對象的順序。

每種機制大部分都是獨立的,但是它們有一些共同的目標。

Git確實形成了增量壓縮對象的長鏈,但是試探法試圖確保只有“舊”對象在長鏈的末端。

core.deltaBaseCacheLimit自動使用增量基本緩存(其大小由配置變量控制 ),并且可以大大減少需要讀取大量對象(例如git log-p)的命令所需的“重建”次數。

增量壓縮啟發式典型的Git存儲庫存儲大量對象,因此無法合理地比較所有對象以找到將產生最小增量表示形式的對(和鏈)。增量基數選擇啟發式算法是基于這樣的思想,即可以在文件名和大小相似的對象中找到良好的增量基數。

每種類型的對象都是單獨處理的(即,一種類型的對象永遠不會用作另一種類型的對象的增量基礎)。

出于增量基數選擇的目的,對象(主要)按文件名和大小排序。進入此排序列表的窗口用于限制被視為潛在增量基礎的對象數量。

擴展知識:

.git/objects/pack 文件過大

可能是由于開發過程中上傳過大文件,雖然現已刪除,但仍然保存著git記錄中。

解決辦法:

一、刪除倉庫上的項目,重新提交代碼。

二、徹底清除歷史記錄

1.識別出最大的三個文件

git verify-pack -v .git/objects/pack/pack-8eaeb...9e.idx | sort -k 3 -n | tail -3
296169a146c50dbc100a5d0ee5be87a45cd7cbb3 blob   50296832 49474116 291684796
 
aae2c1bf6109f2729502349722b4c3402626d755 blob   77762481 77330392 78759794
 
35047899fd3b0dd637b0da2086e7a70fe27b1ccb blob   100534272 100014418 191670176

2.查詢大文件的文件名

git rev-list --objects --all | grep 35047899fd3b0dd637b0da2086e7a70fe27b1ccb
35047899fd3b0dd637b0da2086e7a70fe27b1ccb /wabapi/bulid/master-0.0.1.jar

3.將該文件從歷史記錄的所有 tree 中移除

git filter-branch --index-filter 'git rm --cached --ignore-unmatch  /wabapi/bulid/master-0.0.1.jar'

4.執行如下語句

rm -rf .git/refs/original/
 
git reflog expire --expire=now --all
 
git fsck --full --unreachable
 
git repack -A -d
 
git gc --aggressive --prune=now
 
git push --force

讀到這里,這篇“git的pack文件有什么作用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

乌鲁木齐县| 阳原县| 福州市| 五常市| 出国| 阿拉善盟| 卢氏县| 亚东县| 昭平县| 海阳市| 娄烦县| 洛扎县| 云阳县| 安西县| 定日县| 苏尼特左旗| 寻乌县| 乌拉特后旗| 墨竹工卡县| 安塞县| 太仆寺旗| 北碚区| 阜新| 施甸县| 普格县| 洛南县| 房产| 张北县| 郸城县| 西安市| 平顶山市| 彰化市| 太仆寺旗| 稷山县| 韶山市| 淮安市| 三明市| 秦安县| 新和县| 内丘县| 鹿邑县|