Merge branch 'sb/doc-upstream-branch'
[gitweb.git] / Documentation / git-update-index.txt
index a91fd214d2246b6fbf20543a8d285f619ecd7e58..25e0bbea86caf1234da1746d4a2082cfb80129bd 100644 (file)
@@ -55,7 +55,7 @@ OPTIONS
         default behavior is to error out.  This option makes
        'git-update-index' continue anyway.
 
---ignore-submodules:
+--ignore-submodules::
        Do not try to update submodules.  This option is only respected
        when passed before --refresh.
 
@@ -78,9 +78,9 @@ OPTIONS
 
 --assume-unchanged::
 --no-assume-unchanged::
-       When these flags are specified, the object name recorded
+       When these flags are specified, the object names recorded
        for the paths are not updated.  Instead, these options
-       sets and unsets the "assume unchanged" bit for the
+       set and unset the "assume unchanged" bit for the
        paths.  When the "assume unchanged" bit is on, git stops
        checking the working tree files for possible
        modifications, so you need to manually unset the bit to
@@ -88,6 +88,16 @@ OPTIONS
        sometimes helpful when working with a big project on a
        filesystem that has very slow lstat(2) system call
        (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::
 --again::
@@ -112,7 +122,7 @@ OPTIONS
        'git-update-index' refuses an attempt to add `path/file`.
        Similarly if a file `path/file` exists, a file `path`
        cannot be added.  With --replace flag, existing entries
-       that conflicts with the entry being added are
+       that conflict with the entry being added are
        automatically removed with warning messages.
 
 --stdin::
@@ -313,6 +323,11 @@ from symbolic link to regular file.
 The command looks at `core.ignorestat` configuration variable.  See
 'Using "assume unchanged" bit' section above.
 
+The command also looks at `core.trustctime` configuration variable.
+It can be useful when the inode change time is regularly modified by
+something outside Git (file system crawlers and backup systems use
+ctime for marking files processed) (see linkgit:git-config[1]).
+
 
 SEE ALSO
 --------