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