Unless a repo consisted of several independent projects, it seems it would be simplest to just have one
I can think of at least two situations where you would want to have multiple
.gitignore files in different (sub)directories.
Different directories have different types of file to ignore. For example the
.gitignore in the top directory of your project ignores generated programs, while
Documentation/.gitignore ignores generated documentation.
Ignore given files only in given (sub)directory (you can use
Please remember that patterns in
.gitignore file apply recursively to the (sub)directory the file is in and all its subdirectories, unless pattern contains '/' (so e.g. pattern
name applies to any file named
name in given directory and all its subdirectories, while
/name appliest to file with this name only in given directory).