?
This document uses PHP Chinese website manual Release
git-pack-refs - 打包標(biāo)頭和標(biāo)簽以便高效的存儲庫訪問
git pack-refs [--all] [--no-prune]
傳統(tǒng)上,分支和標(biāo)簽(統(tǒng)稱為refs
)的提示每個參考文件存儲在目錄下的(子)$GIT_DIR/refs
目錄中。盡管許多分支技巧往往會經(jīng)常更新,但大多數(shù)標(biāo)簽和一些分支技巧從未更新過。當(dāng)一個存儲庫有數(shù)百或數(shù)千個標(biāo)簽時,這種每文件一格式的格式既浪費存儲空間又損害性能。
該命令用于通過將 ref 存儲在單個文件中來解決存儲和性能問題,$GIT_DIR/packed-refs
。如果傳統(tǒng)$GIT_DIR/refs
目錄層次結(jié)構(gòu)中缺少 ref ,則會在此文件中查找并在找到時使用。
對分支的后續(xù)更新總是在$GIT_DIR/refs
目錄層次結(jié)構(gòu)下創(chuàng)建新文件。
一個推薦的做法是處理一個資料庫太多的參考文獻,它只--all
會將其參考文獻打包一次,偶爾也會運行git pack-refs
。標(biāo)簽根據(jù)定義是固定的,預(yù)計不會改變。分行負責(zé)人將收集最初的pack-refs --all
,但只有當(dāng)前活躍的分行負責(zé)人將被解包,而下一個pack-refs
(不含--all
)將使他們解包。
--all
該命令默認打包已經(jīng)打包的所有標(biāo)簽和引用,并且僅保留其他引用。這是因為分支機構(gòu)預(yù)計會積極開發(fā),打包他們的提示無助于性能。此選項也會導(dǎo)致分支提示被打包。用于具有許多歷史興趣分支的存儲庫。
--no-prune
這個命令通常會$GIT_DIR/refs
在打包它們之后刪除松散參考。這個選項告訴它不要。
在引入packed-refs機制之前編寫的舊文檔可能仍然表示“.git / refs / heads / <branch>文件存在”,意思是“分支<分支>存在”。