Git Ignore everything in a directory except subfolders

Please don't misuse .gitignore files. Better stick to default ways to go on this, so later developers can quickly get into your project.

  1. Add an empty .gitkeep file in the folders that you want to commit without the files
  2. Exclude the folders, but not the .gitkeep from your main .gitignore file.

    folder/*
    !folder/.gitkeep
    

This ignores all files in a folder, but not the .gitkeep file. Now the folder will be commited with only the .gitkeep file as content.


The solution is quite easy, add !*/ to the .gitignore files and only files in the current folder will be ignored

# Ignore everything in this directory
*
# Except this file
!.gitignore
# Except folders
!*/