Search code examples
gitgitignore

Why is git is ignoring files that aren't in the .gitignore file?


I have a git repository that is ignoring image files as well as a few other files, but my .gitignore file only has it ignoring a config.php file. Is there some global ignore file somewhere that I can't seem to find? I have to specify files to add them now, and it's giving me this warning:

The following paths are ignored by one of your .gitignore files.

The contents of my ~/.gitconfig file are only my e-mail address.


Solution

  • git check-ignore

    Use git check-ignore command to debug your gitignore file (exclude files).

    For example:

    $ git check-ignore -v config.php
    .gitignore:2:src    config.php
    

    The above output details about the matching pattern (if any) for each given pathname (including line).

    So maybe your file extension is not ignored, but the whole directory.

    The returned format is:

    <source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
    

    Or use the following command to print your .gitignore in user HOME and repository folder:

    cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

    Alternatively use git add -f which allows adding otherwise ignored files.

    See: man gitignore, man git-check-ignore for more details.

    Syntax

    git check-ignore [options] pathname…​

    git check-ignore [options] --stdin