117 lines
3.4 KiB
Plaintext
117 lines
3.4 KiB
Plaintext
|
gitignore(5)
|
||
|
============
|
||
|
|
||
|
NAME
|
||
|
----
|
||
|
gitignore - Specifies intentionally untracked files to ignore
|
||
|
|
||
|
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:
|
||
|
|
||
|
* Patterns read from the file specified by the configuration
|
||
|
variable 'core.excludesfile'.
|
||
|
|
||
|
* Patterns read from `$GIT_DIR/info/exclude`.
|
||
|
|
||
|
* Patterns read from a `.gitignore` file in the same directory
|
||
|
as the path, or in any parent directory, ordered from the
|
||
|
deepest such file to a file in the root of the repository.
|
||
|
These patterns match relative to the location of the
|
||
|
`.gitignore` file. A project normally includes such
|
||
|
`.gitignore` files in its repository, containing patterns for
|
||
|
files generated as part of the project build.
|
||
|
|
||
|
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:
|
||
|
|
||
|
- A blank line matches no files, so it can serve as a separator
|
||
|
for readability.
|
||
|
|
||
|
- A line starting with # serves as a comment.
|
||
|
|
||
|
- An optional prefix '!' which negates the pattern; any
|
||
|
matching file excluded by a previous pattern will become
|
||
|
included again.
|
||
|
|
||
|
- If the pattern does not contain a slash '/', git treats it as
|
||
|
a shell glob pattern and checks for a match against the
|
||
|
pathname without leading directories.
|
||
|
|
||
|
- Otherwise, git treats the pattern as a shell glob suitable
|
||
|
for consumption by fnmatch(3) with the FNM_PATHNAME flag:
|
||
|
wildcards in the pattern will not match a / in the pathname.
|
||
|
For example, "Documentation/\*.html" matches
|
||
|
"Documentation/git.html" but not
|
||
|
"Documentation/ppc/ppc.html". A leading slash matches the
|
||
|
beginning of the pathname; for example, "/*.c" matches
|
||
|
"cat-file.c" but not "mozilla-sha1/sha1.c".
|
||
|
|
||
|
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 gitlink:git[7] suite
|