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