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