Recentemente, comecei a usar o Git e estou tendo problemas com apenas uma coisa. Como posso rastrear diretórios sem rastrear seu conteúdo?
Por exemplo, o site em que estou trabalhando permite uploads. Eu quero rastrear o diretório de uploads para que ele seja criado durante a ramificação, etc., mas obviamente não os arquivos dentro dele (arquivos de teste durante o branch de desenvolvimento ou os arquivos reais no master).
No meu .gitignore, tenho o seguinte:
uploads /*.*
Também tentei (o que ignora todo o diretório):
uploads /
Este diretório também pode conter subdiretórios (uploads / thumbs / uploads / videos /) Eu gostaria de poder rastreá-los, mas não seus arquivos.
Isso é possível com Git? Procurei em todos os lugares sem encontrar uma resposta.
.placeholder
solução "-file" também;)Respostas:
Git não rastreia diretórios, ele rastreia arquivos, então para conseguir isso você precisa rastrear pelo menos um arquivo. Então, supondo que seu
.gitignore
arquivo seja algo assim:Você consegue fazer isso:
Se você esquecer o,
-f
verá:Então, quando você fizer isso,
git status
você verá:Obviamente, você pode fazer:
fonte
.gitignore
arquivo como espaço reservado.Eu escrevi sobre isso aqui .
Adicione um .gitignore ao diretório.
fonte
.gitkeep
A melhor resposta que encontrei é incluir um arquivo .gitignore em sua pasta de upload com este conteúdo
Aqui você tem Como posso adicionar um diretório vazio a um repositório Git?
fonte
A melhor solução até agora:
1) Crie um arquivo .gitignore
2) Escreva dentro:
3) Adicione o arquivo .gitignore à pasta desejada.
Fonte: https://stackoverflow.com/a/5581995/2958543
fonte
Para rastrear apenas os diretórios, mas não os arquivos, fiz o seguinte. Graças ao comentário de @PeterFarmer sobre git tracking only files, consegui manter todos os diretórios, excluindo os arquivos, conforme descrito abaixo.
Adicionar isso ao arquivo .gitignore fará o trabalho. A seguir está minha estrutura de pastas.
Quando eu faço isso
git add . && git status
, o git reconhece apenas as pastas, mas não os arquivos.Lembre-se do seguinte para seus arquivos .gitignore:
A barra precedente procura apenas o diretório raiz.
Asterisco duplo procura zero ou mais diretórios.
fonte