Quais são as diferenças entre .gitignore
e .gitkeep
? Eles são a mesma coisa com um nome diferente ou ambos desempenham uma função diferente?
Parece que não consigo encontrar muita documentação .gitkeep
.
.gitkeep
não está documentado, porque não é um recurso do Git.
O Git não pode adicionar um diretório completamente vazio . As pessoas que desejam rastrear diretórios vazios no Git criaram a convenção de colocar arquivos chamados .gitkeep
nesses diretórios. O arquivo pode ser chamado de qualquer coisa; Git não atribui nenhum significado especial a esse nome.
Existe uma convenção concorrente de adicionar um .gitignore
arquivo aos diretórios vazios para controlá-los, mas algumas pessoas acham isso confuso, pois o objetivo é manter os diretórios vazios, não ignorá-los; .gitignore
também é usado para listar arquivos que devem ser ignorados pelo Git ao procurar arquivos não rastreados.
README
arquivo no subdiretório vazio que contém um pouco de informações sobre para que esse subdiretório será usado? Parece confuso ter um arquivo chamado.gitkeep
que não faz parte do git..gitignore
arquivo com duas linhas:*
e!.gitignore
é mais que suficiente clareza para transmitir o que está acontecendo. Se for necessária mais elaboração, adicione um comentário na parte superior do arquivo usando a#
sintaxe..keep
arquivos em vez de.gitkeep
preservar essas pastas vazias, pois o git não é o único sistema de controle de origem que não rastreia pastas vazias. Mais detalhes aqui: github.com/rails/rails/issues/2800.gitkeep
é apenas um espaço reservado. Como um arquivo fictício, o Git não esquecerá o diretório, pois o Git rastreia apenas os arquivos.Se você deseja um diretório vazio e verifique se ele fica 'limpo' para o Git, crie um
.gitignore
contendo as seguintes linhas:Se você deseja ter apenas um tipo de arquivo visível para o Git, aqui está um exemplo de como filtrar tudo, exceto .gitignore e todos os
.txt
arquivos:('#' indica comentários.)
fonte
!
na frente.gitignore
? Isso é para escapar do ponto?!
nega a parte a seguir, como geralmente acontece na programação.!.gitignore
inserir um arquivo git ignore, adicionar o arquivo e editá-lo ou forçar a adição com o conteúdo apropriado ("*" para ignorar tudo ou nada para simplesmente garantir que a pasta exista) exemplo adicional .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Se não estiver, e você não fizer um complemento forte, poderá se esquecer. Em casos triviais, não há problema, mas se for um arquivo maior, você poderá ficar chateado. O uso!.gitignore
evita que você atire no seu pé. Eu prefiro, tendo me queimado no passado.é um arquivo de texto que compreende uma lista de arquivos em seu diretório que o git ignorará ou não adicionará / atualizará no repositório.
Como o Git remove ou não adiciona diretórios vazios a um repositório, o .gitkeep é uma espécie de hack (não acho que seja oficialmente nomeado como parte do Git) para manter os diretórios vazios no repositório.
Basta fazer um
touch /path/to/emptydirectory/.gitkeep
para adicionar o arquivo, e o Git agora poderá manter esse diretório no repositório.fonte
.gitignore
s quiser, se não desejar especificar o caminho completo para todas as pastas todas as vezes..gitkeep
arquivo, mas ele não rastreará os diretórios vazios. Somente a pasta rastreará onde o.gitkeep
arquivo existe. Por quê então ?.gitignore
s evita que você especifique o caminho completo para todas as pastas todas as vezes? Acho que estou perdendo algo óbvio.