$GIT_DIR/info/exclude, .gitignore


A gitignore file specifies intentionally untracked files that git should ignore. Each line in a gitignore file specifies a pattern.

When deciding whether to ignore a path, git normally checks gitignore patterns from multiple sources, with the following order of precedence, from highest to lowest (within one level of precedence, the last matching pattern decides the outcome):

The underlying git plumbing tools, such as gitlink:git-ls-files[1] and gitlink:git-read-tree[1], read gitignore patterns specified by command-line options, or from files specified by command-line options. Higher-level git tools, such as gitlink:git-status[1] and gitlink:git-add[1], use patterns from the sources specified above.

Patterns have the following format:

An example:

    $ git-status
    # Untracked files:
    #       Documentation/foo.html
    #       Documentation/gitignore.html
    #       file.o
    #       lib.a
    #       src/internal.o
    $ cat .git/info/exclude
    # ignore objects and archives, anywhere in the tree.
    $ cat Documentation/.gitignore
    # ignore generated html files,
    # except foo.html which is maintained by hand
    $ git-status
    # Untracked files:
    #       Documentation/foo.html

Another example:

    $ cat .gitignore
    $ ls arch/foo/kernel/vm*
    $ echo '!/vmlinux*' >arch/foo/kernel/.gitignore

The second .gitignore prevents git from ignoring arch/foo/kernel/


Documentation by David Greaves, Junio C Hamano, Josh Triplett, Frank Lichtenheld, and the git-list <>.


Part of the gitlink:git[7] suite