Linux "git-update-index" Command Line Options and Examples
Register file contents in the working tree to the index

Modifies the index or directory cache. Each file mentioned is updated into the index and any unmerged or needs updating state is cleared. See also git-add(1) for a more user-friendly way to do some of the most common operations on the index.


Usage:

git update-index
[--add] [--remove | --force-remove] [--replace]
[--refresh] [-q] [--unmerged] [--ignore-missing]
[(--cacheinfo ,,)...]
[--chmod=(+|-)x]
[--[no-]assume-unchanged]
[--[no-]skip-worktree]
[--[no-]fsmonitor-valid]
[--ignore-submodules]
[--[no-]split-index]
[--[no-|test-|force-]untracked-cache]
[--[no-]fsmonitor]
[--really-refresh] [--unresolve] [--again | -g]
[--info-only] [--index-info]
[-z] [--stdin] [--index-version ]
[--verbose]
[--] [...]






Command Line Options:

--add
If a specified file isn’t in the index already then it’s added. Default behaviour is to ignore new files.
git-update-index --add ...
--remove
If a specified file is in the index but is missing then it’s removed. Default behavior is to ignore removed file.
git-update-index --remove ...
--refresh
Looks at the current index and checks to see if merges or updates are needed by checking stat() information.
git-update-index --refresh ...
-q
Quiet. If --refresh finds that the index needs an update, the default behavior is to error out. This option makes gitupdate-index continue anyway.
git-update-index -q ...
--ignore-submodules
Do not try to update submodules. This option is only respected when passed before --refresh.
git-update-index --ignore-submodules ...
--unmerged
If --refresh finds unmerged changes in the index, the default behavior is to error out. This option makes git update-indexcontinue anyway.
git-update-index --unmerged ...
--ignore-missing
Ignores missing files during a --refresh
git-update-index --ignore-missing ...
--cacheinfo
Directly insert the specified info into the index. For backward compatibility, you can also give these three arguments as threeseparate parameters, but new users are encouraged to use a single-parameter form.
git-update-index --cacheinfo ...
--index-info
Read index information from stdin.
git-update-index --index-info ...
--chmod
Set the execute permissions on the updated files.
git-update-index --chmod ...
--[no-]assume-unchanged
When this flag is specified, the object names recorded for the paths are not updated. Instead, this option sets/unsets the"assume unchanged" bit for the paths. When the "assume unchanged" bit is on, the user promises not to change the file and allowsGit to assume that the working tree file matches what is recorded in the index. If you want to change the working tree file, youneed to unset the bit to tell Git. This is sometimes helpful when working with a big project on a filesystem that has very slowlstat(2) system call (e.g. cifs).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 theassumed-untracked file is changed upstream, you will need to handle the situation manually.
git-update-index --[no-]assume-unchanged ...
--really-refresh
Like --refresh, but checks stat information unconditionally, without regard to the "assume unchanged" setting.
git-update-index --really-refresh ...
--[no-]skip-worktree
When one of these flags is specified, the object name recorded for the paths are not updated. Instead, these options set andunset the "skip-worktree" bit for the paths. See section "Skip-worktree bit" below for more information.
git-update-index --[no-]skip-worktree ...
--[no-]fsmonitor-valid
When one of these flags is specified, the object name recorded for the paths are not updated. Instead, these options set andunset the "fsmonitor valid" bit for the paths. See section "File System Monitor" below for more information.
git-update-index --[no-]fsmonitor-valid ...
-g
Runs git update-index itself on the paths whose index entries are different from those from the HEAD commit.
git-update-index -g ...
--unresolve
Restores the unmerged or needs updating state of a file during a merge if it was cleared by accident.
git-update-index --unresolve ...
--info-only
Do not create objects in the object database for all <file> arguments that follow this flag; just insert their object IDs intothe index.
git-update-index --info-only ...
--force-remove
Remove the file from the index even when the working directory still has such a file. (Implies --remove.)
git-update-index --force-remove ...
--replace
By default, when a file path exists in the index, git update-index refuses an attempt to add path/file. Similarly if a filepath/file exists, a file path cannot be added. With --replace flag, existing entries that conflict with the entry being added areautomatically removed with warning messages.
git-update-index --replace ...
--stdin
Instead of taking list of paths from the command line, read list of paths from the standard input. Paths are separated by LF(i.e. one path per line) by default.
git-update-index --stdin ...
--verbose
Report what is being added and removed from index.
git-update-index --verbose ...
--index-version
Write the resulting index out in the named on-disk format version. Supported versions are 2, 3 and 4. The current default versionis 2 or 3, depending on whether extra features are used, such as git add -N.Version 4 performs a simple pathname compression that reduces index size by 30%-50% on large repositories, which results infaster load time. Version 4 is relatively young (first released in 1.8.0 in October 2012). Other Git implementations such as JGitand libgit2 may not support it yet.
git-update-index --index-version ...
-z
Only meaningful with --stdin or --index-info; paths are separated with NUL character instead of LF.
git-update-index -z ...
--split-index
Enable or disable split index mode. If split-index mode is already enabled and --split-index is given again, all changes in$GIT_DIR/index are pushed back to the shared index file.These options take effect whatever the value of the core.splitIndex configuration variable (see git-config(1)). But a warning isemitted when the change goes against the configured value, as the configured value will take effect next time the index is readand this will remove the intended effect of the option.
git-update-index --split-index ...
--untracked-cache
Enable or disable untracked cache feature. Please use --test-untracked-cache before enabling it.These options take effect whatever the value of the core.untrackedCache configuration variable (see git-config(1)). But a warningis emitted when the change goes against the configured value, as the configured value will take effect next time the index isread and this will remove the intended effect of the option.
git-update-index --untracked-cache ...
--test-untracked-cache
Only perform tests on the working directory to make sure untracked cache can be used. You have to manually enable untracked cacheusing --untracked-cache or --force-untracked-cache or the core.untrackedCache configuration variable afterwards if you reallywant to use it. If a test fails the exit code is 1 and a message explains what is not working as needed, otherwise the exit codeis 0 and OK is printed.
git-update-index --test-untracked-cache ...
--force-untracked-cache
Same as --untracked-cache. Provided for backwards compatibility with older versions of Git where --untracked-cache used to imply
git-update-index --force-untracked-cache ...
--fsmonitor
Enable or disable files system monitor feature. These options take effect whatever the value of the core.fsmonitor configurationvariable (see git-config(1)). But a warning is emitted when the change goes against the configured value, as the configured valuewill take effect next time the index is read and this will remove the intended effect of the option.
git-update-index --fsmonitor ...
--
Do not interpret any more arguments as options.<file>Files to act on. Note that files beginning with . are discarded. This includes ./file and dir/./file. If you don’t want this,then use cleaner names. The same applies to directories ending / and paths with //USING --REFRESH
git-update-index -- ...