git-update-cache(1) Manual Page
NAME
git - update-cache - Modifies the index or directory cache
SYNOPSIS
git-update-cache [—add] [—remove] [—refresh] [—replace] [—ignore-missing] [—force-remove] [—cacheinfo <mode> <object> <file>]* [—] [<file>]*
DESCRIPTION
Modifies the index or directory cache. Each file mentioned is updated into the cache and any unmerged or needs updating state is cleared.
The way "git-update-cache" handles files it is told about can be modified using the various options:
OPTIONS
- —add
- If a specified file isn't in the cache already then it's added. Default behaviour is to ignore new files.
- —remove
- If a specified file is in the cache but is missing then it's removed. Default behaviour is to ignore removed file.
- —refresh
- Looks at the current cache and checks to see if merges or updates are needed by checking stat() information.
- —ignore-missing
- Ignores missing files during a —refresh
- —cacheinfo <mode> <object> <path>
- Directly insert the specified info into the cache.
- —force-remove
- Remove the file from the index even when the working directory still has such a file. (Implies —remove.)
- —replace
- By default, when a file path exists in the index, git-update-cache 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 automatically removed with warning messages.
- —
- Do not interpret any more arguments as options.
- <file>
- Files to act on. Note that files begining 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
—refresh does not calculate a new sha1 file or bring the cache up-to-date for mode/content changes. But what it does do is to "re-match" the stat information of a file with the cache, so that you can refresh the cache for a file that hasn't been changed but where the stat entry is out of date.
For example, you'd want to do this after doing a "git-read-tree", to link up the stat cache details with the proper files.
Using —cacheinfo
—cacheinfo is used to register a file that is not in the current working directory. This is useful for minimum-checkout merging.
To pretend you have a file with mode and sha1 at path, say:
$ git-update-cache --cacheinfo mode sha1 path
To update and refresh only the files already checked out:
git-checkout-cache -n -f -a && git-update-cache --ignore-missing --refresh
Author
Written by Linus Torvalds <torvalds@osdl.org>
Documentation
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
GIT
Part of the git(7) suite