git-update-cache(1) =================== v0.1, May 2005 NAME ---- git-update-cache - Modifies the index or directory cache SYNOPSIS -------- 'git-update-cache' [--add] [--remove] [--refresh] [--replace] [--ignore-missing] [--force-remove] [--cacheinfo ]\* [--info-only] [--] []\* 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 :: Directly insert the specified info into the cache. --info-only:: Do not create objects in the object database for all arguments that follow this flag; just insert their object IDs 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. :: 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 or --info-only -------------------------------- '--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 '--info-only' is used to register files without placing them in the object database. This is useful for status-only repositories. Both '--cacheinfo' and '--info-only' behave similarly: the index is updated but the object database isn't. '--cacheinfo' is useful when the object is in the database but the file isn't available locally. '--info-only' is useful when the file is available, but you do not wish to update the object database. Examples -------- 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 Documentation -------------- Documentation by David Greaves, Junio C Hamano and the git-list . GIT --- Part of the link:git.html[git] suite