Git: ignore files but not sub-directories in a directory

git, gitignore

Solution

You can do the following:

project/*
!project/*/

This will ignore all files in `project` but unignore all directories in `project`.

Problem

I have a project in which all development is done at some directory depth, and so I'm used to cd-ing to a second-level directory and write some temporary files there. The tree looks like this: ``` repo .git/ project/ dev/ important_stuff/ more_stuff/ README prod/ important_stuff/ more_stuff/ README temp_1.txt test.cc ``` I would like to git-ignore exactly files that are directly in project/ - `temp_1.txt` and `test.cc` in this case. How can I do this?

Original source