Como rastrear um diretório, mas não seus arquivos com git

Às vezes, é necessário adicionar um diretório no git, mas você não deseja rastrear nenhum arquivo nele. Por exemplo, se você tiver um logdiretório. Você provavelmente não deseja adicionar os arquivos de log reais ao seu git, mas adicionar o diretório pode fazer sentido, para evitar avisos como este:

DEPRECATION WARNING: Automatic directory creation for '/home/user/my-app/log/development.log' is deprecated.  Please make sure the directory for your log file exists before creating the logger.

Não existe uma maneira oficial de fazer exatamente isso no git. O Git não pode rastrear diretórios vazios . Então, se você tiver uma linha como esta em seu arquivo .gitignore:

log/*.*

ele não adicionará o logdiretório ao repositório. Mas uma convenção não oficial é apenas adicionar um arquivo vazio nomeado .gitkeepa este diretório e adicioná-lo ao git. Ele não faz nada, mas a nomenclatura diz a outros leitores que ele tem que fazer algo com o git, e pesquisar por ” .gitkeep” dará ao futuro desenvolvedor a resposta de que precisa.

touch log/.gitkeep
git ci
-am "added log directory to git"

Isso é tudo, feliz início!