Pare de rastrear um arquivo no git - sem que ele seja excluído localmente ou por solicitação

Quero ignorar uma árvore de arquivos / diretórios que foi rastreada anteriormente - ignore-a para sempre, mas tenha-anão sendo excluído em um pull - apenas faça com que seja ignorado no repositório em que o pull aconteceu. Isso é possível ? Por que não (se não)? Como devo proceder ?

NB: a resposta aceita emRemova um arquivo de um repositório Git sem excluí-lo do sistema de arquivos local - nomeadamentegit rm --cached path - resultará na exclusão do arquivo em um pull. Desagradável. Não apenas isso, mas "ele excluirá seu arquivo se você fizer uma revisão antes da exclusão e depois fizer uma revisão após a exclusão" (consulte esteComente) Consulte esta pergunta para outros comentários / respostas interessantes que não abordam meu problema.

Estou perfeitamente ciente do--assume-unchanged sinalizador, mas não é isso que eu quero - quero dizer ao git (e todos os clones do repositório) "ei, pare de rastrear este arquivo / árvore", mas não "exclua este arquivo / árvore" - então eu quero--assume-unchanged globalmente como se fosse. Se não for possível (por quê?), Preciso de umGambiarra.

Para o registro, estou tentando inicializar o git para usá-lo para manter / compartilhar o histórico e quero poder parar o rastreamento de arquivos / diretórios à vontade -sem tê-los excluídos.

Palavras-chave:

git assume-inalterado vs skip-worktree - o conselho geral para assumir inalterado deve ser tomado com um grão de sal (ao puxar, redefinir --hard etc)git assume a árvore de trabalho inalterada vs pular - ignorando um link simbólico - veja esta resposta paracore.sparseCheckout

questionAnswers(2)

yourAnswerToTheQuestion