git sparse-checkout
Espaços de trabalho e projetos grandes
Faz checkout só de algumas pastas de um repositório grande
O comando 'git sparse-checkout' limita quais pastas ficam no disco. Os arquivos fora dessas pastas continuam em cada commit e no repositório, só não são colocados no disco — útil em repositórios enormes onde você só trabalha numa parte. No modo cone (padrão), os arquivos da raiz sempre estão presentes. O git status diz qual porcentagem dos arquivos está no disco.
Sinopse
git sparse-checkout (set | add) <folder>...
git sparse-checkout list
git sparse-checkout disable[ ] opcional| ou<arg> valor a substituir... repetível--flag opção
Opções
Escolhendo a opção certa
Trabalhar com um repositório enorme
Menos no disco versus menos baixado
| Comando | Economiza |
|---|---|
git sparse-checkout | Espaço em disco e tempo de checkout |
git clone --filter=blob:none | Tamanho do download (clone parcial) |
git clone --depth 1 | Tamanho do histórico (clone raso) |
Exemplos
Manter uma pasta
git sparse-checkout set srcSó src/ e os arquivos da raiz.
Adicionar uma pasta
git sparse-checkout add docsdocs/ volta também.
Desligá-lo
git sparse-checkout disableTodos os arquivos de novo.
Exemplos de fluxos de trabalho
1
git clone --filter=blob:none --sparse <url>Clonar leve, sparse desde o início
2
git sparse-checkout set webManter só a sua pasta
Solução de problemas
Falta uma pasta
Causa: Ela está fora do sparse checkout
git sparse-checkout add <folder>
Dicas e armadilhas
Boas práticas
- ✓Use o modo cone (padrão) — é muito mais rápido que padrões.
Erros comuns
- ✗Achar que os arquivos ocultos são apagados do projeto — continuam sendo commitados e enviados normalmente.
Perguntas frequentes
A:
Você não os vê, então normalmente não mexe neles; os commits os mantêm inalterados.