Ocultando arquivos e diretórios que não se deseja versionar com GIT usando gitignore


É comum no diretório em que estamos desenvolvendo uma aplicação existirem arquivos e pastas que não queremos versionar e nem que apareçam ao dar um 'git status'. Pastas com imagens, arquivos de log e etc. são alguns exemplos.

Para facilitar nossa vida é possível fazer o GIT ignorar tais arquivos e pastas. Basta criar um arquivo chamado '.gitignore'.



O exemplo abaixo é o padrão do arquivo e pode ser copiado e alterado dependendo de suas necessidades.


 # Compiled source #  
 ###################  
 *.com  
 *.class  
 *.dll  
 *.exe  
 *.o  
 *.so  
 # Packages #  
 ############  
 # it's better to unpack these files and commit the raw source  
 # git has its own built in compression methods  
 *.7z  
 *.dmg  
 *.gz  
 *.iso  
 *.jar  
 *.rar  
 *.tar  
 *.zip  
 # Logs and databases #  
 ######################  
 *.log  
 *.sql  
 *.sqlite  
 # OS generated files #  
 ######################  
 .DS_Store  
 .DS_Store?  
 ._*  
 .Spotlight-V100  
 .Trashes  
 ehthumbs.db  
 Thumbs.db  
 # Folders #  
 ######################  
 versions/  
 images/  
 # Config Files #  
 ######################  
 config.fs  


O Git não versiona pastas vazias porém existem situações em que se pode desejar manter uma pasta mesmo sem conteúdo ( uma pasta de logs por exemplo ).

Nestes casos podemos usar um truque para "enganar" o Git.

Criamos um arquivo qualquer na pasta. Geralmente é adotado o nome .gitkeep

Exemplo: $ touch temp/.gitkeep

Depois acrescentamos as seguintes linhas no arquivo .gitignore:

temp/*
!temp/.gitkeep

A primeira linha diz ao Git para ignorar todos os arquivos dentro da pasta [temp] e a segunda linha coloca como exceção o arquivo .gitkeep.

Assim todos os arquivos criados dentro da pasta [temp] serão sempre ignorados porém como existe um único arquivo versionado dentro da pasta esta estará no versionamento de seu projeto.

Aqui você encontra vários exemplos de arquivos .gitignore para inúmeras linguagens de programação

Comentários

Postagens mais visitadas deste blog

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()

MySQL - Clonando tabelas na linha de comando

PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()