Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.42.1 → 2.43.0 no changes
- 2.42.0 08/21/23
DESCRIÇÃO
Tradicionalmente, o cume dos ramos e as tags (coletivamente conhecidas como
refs) eram armazenadas um arquivo por "ref" em um diretório (sub) no
diretório $GIT_DIR/refs
. Enquanto muitos cumes dos ramos tendem a ser
atualizadas com frequência, a maioria das tags e alguns cumes dos ramos
nunca são atualizadas. Quando um repositório possui centenas ou milhares de
tags, este formato de um arquivo por referência desperdiça armazenamento e
prejudica o desempenho.
Este comando é utilizado para resolver o problema de armazenamento e
desempenho, armazenando as refs em um único arquivo,
$GIT_DIR/compact-refs
. Quando uma "ref" está ausente na hierarquia dos
diretórios tradicionais $GIT_DIR/refs
, ele é procurado neste arquivo e
utilizado caso seja encontrado.
Atualizações subsequentes nos ramos sempre criam novos arquivos na
hierarquia de diretórios $GIT_DIR/refs
.
Uma prática recomendada para lidar com um repositório com muitas refs é
empacotar as suas refs com --all
uma vez e ocasionalmente executar o
comando git pack-refs
. As tags são estacionárias por definição e não
devem mudar. Os cabeçalhos da ramificação serão empacotadas com os
pack-refs --all
iniciais, mas apenas os cabeçalhos da ramificação
atualmente ativas, serão descompactadas e as próximas pack-refs
(sem a
opção --all
) as deixarão descompactadas.
OPÇÕES
- --all
-
É predefinido que o comando empacote todas as "tags" e refs que já estão empacotados e deixe as outras refs em paz. Isso ocorre porque os ramos devem ser desenvolvidas ativamente e embalar as suas pontas não ajudam no desempenho. Essa opção também faz com que os cumes dos ramos sejam compactadas. Útil para um repositório com muitos ramos de interesses histórico.
- --no-prune
-
O comando normalmente remove as refs soltas na hierarquia
$GIT_DIR/refs
após empacotá-los. Esta opção diz para não fazê-lo.
BUGS
A documentação mais antiga escrita antes da introdução do mecanismo "packed-refs" ainda pode dizer coisas como "o arquivo .git/refs/heads/<ramo> existe" quando significa "o ramo <ramo> existe".
GIT
Parte do conjunto git[1]