Git does not traverse directories excluded in excludesfiles. Thus
to exclude everything in a directory besides something, you have
to first exclude **
under that directory, and then
add negating patterns for each of the subdirectories leading to
the files, ending with the negating pattern for the file.
Firstly, .gitignore
files from the directory
subtree of $GIT_WORK_TREE
.
Then, $GIT_DIR/info/exclude
. This one is not
recommended to be staged.
Now, there is core.excludesFile
git config entry. I
am guessing that there can be just one core.excludesFile
.
Hence if you set it to something else in your repository's /.gitconfig
or in $GIT_CONFIG
, the one that you defined in your
~/.gitconfig
, nor $XDG_CONFIG_HOME/git/ignore
,
are not loaded.
{ echo -n '/'; echo .sh_history ;} >> .gdignore