path: root/Documentation/git-update-cache.txt
diff options
authorDavid Greaves <>2005-05-10 21:32:30 (GMT)
committerJunio C Hamano <>2005-05-10 21:55:22 (GMT)
commit2cf565c53c88c557eedd7e5629437b3c6fe74329 (patch)
treebb04b39cf3fef50bc05825d953486a4d6bada056 /Documentation/git-update-cache.txt
parent3be4b61aa4ffb54a42c717772518b2a14b1e352b (diff)
[PATCH 1/4] split core-git.txt and update
Split the core-git.txt file Formatting fix to the diff-format.txt Signed-off-by: David Greaves <>
Diffstat (limited to 'Documentation/git-update-cache.txt')
1 files changed, 108 insertions, 0 deletions
diff --git a/Documentation/git-update-cache.txt b/Documentation/git-update-cache.txt
new file mode 100644
index 0000000..604411d
--- /dev/null
+++ b/Documentation/git-update-cache.txt
@@ -0,0 +1,108 @@
+v0.1, May 2005
+git-update-cache - Modifies the index or directory cache
+ [--add] [--remove] [--refresh] [--replace]
+ [--ignore-missing]
+ [--force-remove <file>]
+ [--cacheinfo <mode> <object> <file>]\*
+ [--] [<file>]\*
+Modifies the index or directory cache. Each file mentioned is updated
+into the cache and any 'unmerged' or 'needs updating' state is
+The way "git-update-cache" handles files it is told about can be modified
+using the various options:
+ If a specified file isn't in the cache already then it's
+ added.
+ Default behaviour is to ignore new files.
+ If a specified file is in the cache but is missing then it's
+ removed.
+ Default behaviour is to ignore removed file.
+ Looks at the current cache and checks to see if merges or
+ updates are needed by checking stat() information.
+ Ignores missing files during a --refresh
+--cacheinfo <mode> <object> <path>::
+ Directly insert the specified info into the cache.
+ Remove the file from the index even when the working directory
+ still has such a file.
+ 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
+'--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
+Written by Linus Torvalds <>
+Documentation by David Greaves, Junio C Hamano and the git-list <>.
+Part of the link:git.html[git] suite