Para adicionar um diretório a um sparse checkout existente no seu Mac, abra o Terminal, vá para a raiz do repositório e execute git sparse-checkout add 'path/to/directory'. O Git torna os arquivos rastreados sob esse diretório disponíveis na árvore de trabalho, mantendo as outras seleções do sparse-checkout. Se o repositório ainda não for sparse, use git sparse-checkout set --cone 'path/to/directory' para habilitar o modo cone e escolher o diretório; isso define a seleção e, portanto, pode remover outros arquivos rastreados da árvore de trabalho.
Antes de executar o comando
O sparse checkout altera quais arquivos rastreados aparecem na árvore de trabalho de um repositório. Arquivos fora da área selecionada continuam sendo rastreados pelo Git; eles não são excluídos do histórico do repositório. No modo cone padrão, o Git inclui tudo sob um diretório selecionado, além dos arquivos imediatamente dentro dos seus diretórios pai e da raiz do repositório. Isso significa que adicionar um diretório aninhado também pode tornar visíveis arquivos próximos de nível superior ou pai. Manual do sparse-checkout do Git
Abra o Terminal e verifique se o Git está disponível; em seguida, navegue até o repositório. Por exemplo, substitua o caminho de exemplo pelo local do seu checkout:
git --version
cd "$HOME/Projects/sample-repo"
git status --short
Em um Mac sem as ferramentas de linha de comando do Git instaladas, invocar git pode solicitar que você instale as Ferramentas de Linha de Comando da Apple. Siga as instruções do macOS e execute git --version novamente. Apple: Instalando as Command Line Tools
Use git status --short para verificar alterações locais antes de modificar a seleção sparse. Mantenha em segurança trabalhos importantes não commitados ou não rastreados, especialmente se estiverem dentro de um diretório que possa ser excluído. Execute os comandos de sparse-checkout de dentro do repositório e use caminhos relativos à raiz dele. Coloque entre aspas os caminhos que contenham espaços ou metacaracteres do shell, como nos exemplos, para que o zsh ou bash passe o caminho para o Git como um único argumento.
Adicionar um diretório a um sparse checkout existente
Se o sparse checkout já estiver habilitado, adicione o diretório com:
git sparse-checkout add 'Packages/Map View'
Substitua Packages/Map View pelo caminho do diretório conforme ele aparece no repositório. No modo cone, isso adiciona esse diretório à seleção atual em vez de substituir os outros diretórios selecionados. A documentação do Git indica que add requer um sparse checkout já existente; ele atualiza a seleção e a árvore de trabalho. Referência do comando Git sparse-checkout
Para inspecionar os diretórios selecionados posteriormente, execute:
git sparse-checkout list
git status --short
A lista exibe os diretórios do sparse-checkout. O status ajuda a ver se arquivos rastreados ou não rastreados foram modificados; ele não exibe arquivos rastreados omitidos como excluídos apenas por estarem fora da seleção sparse.
Se este for um checkout regular
Para um checkout completo que você deseja converter em um sparse checkout contendo um diretório escolhido, use set:
git sparse-checkout set --cone 'Packages/Map View'
set estabelece a seleção sparse a partir dos caminhos fornecidos. Ele não preserva outros diretórios de um checkout completo regular como seleções adicionais. Se você precisar de vários diretórios, inclua cada um no mesmo comando, por exemplo git sparse-checkout set --cone 'Packages/Map View' 'Docs'. Referência do comando Git sparse-checkout
Alterar a seleção pode remover arquivos da árvore de trabalho. A documentação do Git também observa que, ao alterar as seleções no modo cone, arquivos ignorados podem ser excluídos em diretórios que não possuem mais arquivos rastreados ou arquivos não rastreados que não sejam ignorados. Verifique seu status e proteja quaisquer arquivos locais necessários antes de executar set; se o Git avisar que arquivos não rastreados impedem a limpeza, inspecione esses arquivos em vez de forçar a remoção. Manual do sparse-checkout do Git
Se o Git relatar um problema
Se git sparse-checkout add informar que o repositório não está em um sparse checkout, decida se você pretende reduzir a árvore de trabalho. Para fazer isso, use o comando set --cone acima. Se a sua intenção era manter todos os diretórios atuais e adicionar apenas um, primeiro identifique os diretórios que deseja manter e, em seguida, passe todos eles e o novo diretório para set --cone juntos.
Se um caminho não estiver presente após ser adicionado, confirme a ortografia e o uso de maiúsculas/minúsculas em relação aos caminhos rastreados do repositório e verifique se ele existe no branch atual. O sparse checkout seleciona caminhos rastreados; ele não cria um diretório ausente nem inicializa um submódulo automaticamente. O Git documenta a inicialização de submódulos como uma operação separada. Manual do sparse-checkout do Git
O sparse checkout controla quais arquivos o Git coloca na árvore de trabalho; não é o mesmo que clonar apenas um diretório ou excluir outros diretórios do repositório. O Git oferece suporte a filtros separados de clone parcial para limitar os objetos baixados de um servidor, mas a disponibilidade e o efeito dependem da configuração do clone e do servidor. A opção git clone --sparse inicia com arquivos de nível superior e é outro fluxo de trabalho para um novo clone. Documentação do git clone