]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-update-cache.txt
[PATCH] Expose object ID computation functions.
[thirdparty/git.git] / Documentation / git-update-cache.txt
CommitLineData
2cf565c5
DG
1git-update-cache(1)
2===================
3v0.1, May 2005
4
5NAME
6----
7git-update-cache - Modifies the index or directory cache
8
9
10SYNOPSIS
11--------
12'git-update-cache'
13 [--add] [--remove] [--refresh] [--replace]
14 [--ignore-missing]
9b63f501 15 [--force-remove]
2cf565c5
DG
16 [--cacheinfo <mode> <object> <file>]\*
17 [--] [<file>]\*
18
19DESCRIPTION
20-----------
21Modifies the index or directory cache. Each file mentioned is updated
22into the cache and any 'unmerged' or 'needs updating' state is
23cleared.
24
25The way "git-update-cache" handles files it is told about can be modified
26using the various options:
27
28OPTIONS
29-------
30--add::
31 If a specified file isn't in the cache already then it's
32 added.
33 Default behaviour is to ignore new files.
34
35--remove::
36 If a specified file is in the cache but is missing then it's
37 removed.
38 Default behaviour is to ignore removed file.
39
40--refresh::
41 Looks at the current cache and checks to see if merges or
42 updates are needed by checking stat() information.
43
44--ignore-missing::
45 Ignores missing files during a --refresh
46
47--cacheinfo <mode> <object> <path>::
48 Directly insert the specified info into the cache.
49
50--force-remove::
51 Remove the file from the index even when the working directory
9b63f501 52 still has such a file. (Implies --remove.)
2cf565c5
DG
53
54--replace::
55 By default, when a file `path` exists in the index,
56 git-update-cache refuses an attempt to add `path/file`.
57 Similarly if a file `path/file` exists, a file `path`
58 cannot be added. With --replace flag, existing entries
59 that conflicts with the entry being added are
60 automatically removed with warning messages.
61
62--::
63 Do not interpret any more arguments as options.
64
65<file>::
66 Files to act on.
67 Note that files begining with '.' are discarded. This includes
68 `./file` and `dir/./file`. If you don't want this, then use
69 cleaner names.
70 The same applies to directories ending '/' and paths with '//'
71
72Using --refresh
73---------------
74'--refresh' does not calculate a new sha1 file or bring the cache
75up-to-date for mode/content changes. But what it *does* do is to
76"re-match" the stat information of a file with the cache, so that you
77can refresh the cache for a file that hasn't been changed but where
78the stat entry is out of date.
79
80For example, you'd want to do this after doing a "git-read-tree", to link
81up the stat cache details with the proper files.
82
83Using --cacheinfo
84-----------------
85'--cacheinfo' is used to register a file that is not in the current
86working directory. This is useful for minimum-checkout merging.
87
88To pretend you have a file with mode and sha1 at path, say:
89
90 $ git-update-cache --cacheinfo mode sha1 path
91
92To update and refresh only the files already checked out:
93
94 git-checkout-cache -n -f -a && git-update-cache --ignore-missing --refresh
95
96
97Author
98------
99Written by Linus Torvalds <torvalds@osdl.org>
100
101Documentation
102--------------
103Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
104
105GIT
106---
107Part of the link:git.html[git] suite
108