Documentation: How to ignore local changes in tracked files
This patch explains more carefully that `.gitignore` concerns only untracked files and refers the reader to git update-index --assume-unchanged in the need of ignoring uncommitted changes in already tracked files. The description of this option is lifted to a more "porcelainish" level and explains the caveats of this usecase. Whether feasible or not, I believe adding this functionality to the porcelain is out of the scope of this patch. (And I personally think that referring to the plumbing in the case of such a special usage is fine.) This is currently probably one of the top FAQs at #git and the --assume-unchanged switch is not widely known; gitignore(5) is the first place where people are likely to look for it. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c47f10246a
commit
6259ac6628
@ -88,6 +88,16 @@ OPTIONS
|
|||||||
sometimes helpful when working with a big project on a
|
sometimes helpful when working with a big project on a
|
||||||
filesystem that has very slow lstat(2) system call
|
filesystem that has very slow lstat(2) system call
|
||||||
(e.g. cifs).
|
(e.g. cifs).
|
||||||
|
+
|
||||||
|
This option can be also used as a coarse file-level mechanism
|
||||||
|
to ignore uncommitted changes in tracked files (akin to what
|
||||||
|
`.gitignore` does for untracked files).
|
||||||
|
You should remember that an explicit 'git add' operation will
|
||||||
|
still cause the file to be refreshed from the working tree.
|
||||||
|
Git will fail (gracefully) in case it needs to modify this file
|
||||||
|
in the index e.g. when merging in a commit;
|
||||||
|
thus, in case the assumed-untracked file is changed upstream,
|
||||||
|
you will need to handle the situation manually.
|
||||||
|
|
||||||
-g::
|
-g::
|
||||||
--again::
|
--again::
|
||||||
|
@ -13,9 +13,14 @@ DESCRIPTION
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
A `gitignore` file specifies intentionally untracked files that
|
A `gitignore` file specifies intentionally untracked files that
|
||||||
git should ignore. Each line in a `gitignore` file specifies a
|
git should ignore.
|
||||||
pattern.
|
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
|
When deciding whether to ignore a path, git normally checks
|
||||||
`gitignore` patterns from multiple sources, with the following
|
`gitignore` patterns from multiple sources, with the following
|
||||||
order of precedence, from highest to lowest (within one level of
|
order of precedence, from highest to lowest (within one level of
|
||||||
|
Reference in New Issue
Block a user