X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgitignore.txt;h=59321a2e82b1e141746d94c439452b52b84994ad;hb=e80f97e20c8122f79450e1f40f569df0b52773e9;hp=e847b3ba63f3fae3d5497d6ede1ea0ee416a74de;hpb=e38f892d1832977511c4e7c82204c7f94c3a3232;p=git.git diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index e847b3ba6..59321a2e8 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -13,9 +13,14 @@ DESCRIPTION ----------- A `gitignore` file specifies intentionally untracked files that -git should ignore. Each line in a `gitignore` file specifies a -pattern. - +git should ignore. +Note that all the `gitignore` files really concern only files +that are not already tracked by git; +in order to ignore uncommitted changes in already tracked files, +please refer to the 'git update-index --assume-unchanged' +documentation. + +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 @@ -38,11 +43,23 @@ precedence, the last matching pattern decides the outcome): * Patterns read from the file specified by the configuration variable 'core.excludesfile'. +Which file to place a pattern in depends on how the pattern is meant to +be used. Patterns which should be version-controlled and distributed to +other repositories via clone (i.e., files that all developers will want +to ignore) should go into a `.gitignore` file. Patterns which are +specific to a particular repository but which do not need to be shared +with other related repositories (e.g., auxiliary files that live inside +the repository but are specific to one user's workflow) should go into +the `$GIT_DIR/info/exclude` file. Patterns which a user wants git to +ignore in all situations (e.g., backup or temporary files generated by +the user's editor of choice) generally go into a file specified by +`core.excludesfile` in the user's `~/.gitconfig`. + The underlying git plumbing tools, such as -linkgit:git-ls-files[1] and linkgit:git-read-tree[1], read +'git-ls-files' and 'git-read-tree', read `gitignore` patterns specified by command-line options, or from files specified by command-line options. Higher-level git -tools, such as linkgit:git-status[1] and linkgit:git-add[1], +tools, such as 'git-status' and 'git-add', use patterns from the sources specified above. Patterns have the following format: @@ -80,7 +97,7 @@ Patterns have the following format: An example: -------------------------------------------------------------- - $ git-status + $ git status [...] # Untracked files: [...] @@ -98,7 +115,7 @@ An example: *.html # except foo.html which is maintained by hand !foo.html - $ git-status + $ git status [...] # Untracked files: [...] @@ -126,4 +143,4 @@ Frank Lichtenheld, and the git-list . GIT --- -Part of the linkgit:git[7] suite +Part of the linkgit:git[1] suite