SYNOPSIS

$GIT_DIR/info/exclude, .gitignore

DESCRIPTION

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:

The underlying git plumbing tools, such as git-ls-files(1) and 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 git-status(1) and 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.
    *.[oa]
    $ cat Documentation/.gitignore
    # ignore generated html files,
    *.html
    # except foo.html which is maintained by hand
    !foo.html
    $ git-status
    [...]
    # Untracked files:
    [...]
    #       Documentation/foo.html
    [...]

Another example:

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

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

Documentation

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

GIT

Part of the git(7) suite