]>
Commit | Line | Data |
---|---|---|
1a394fa9 NTND |
1 | core.fileMode:: |
2 | Tells Git if the executable bit of files in the working tree | |
3 | is to be honored. | |
4 | + | |
5 | Some filesystems lose the executable bit when a file that is | |
6 | marked as executable is checked out, or checks out a | |
7 | non-executable file with executable bit on. | |
8 | linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem | |
9 | to see if it handles the executable bit correctly | |
10 | and this variable is automatically set as necessary. | |
11 | + | |
12 | A repository, however, may be on a filesystem that handles | |
13 | the filemode correctly, and this variable is set to 'true' | |
14 | when created, but later may be made accessible from another | |
15 | environment that loses the filemode (e.g. exporting ext4 via | |
16 | CIFS mount, visiting a Cygwin created repository with | |
17 | Git for Windows or Eclipse). | |
18 | In such a case it may be necessary to set this variable to 'false'. | |
19 | See linkgit:git-update-index[1]. | |
20 | + | |
21 | The default is true (when core.filemode is not specified in the config file). | |
22 | ||
23 | core.hideDotFiles:: | |
24 | (Windows-only) If true, mark newly-created directories and files whose | |
25 | name starts with a dot as hidden. If 'dotGitOnly', only the `.git/` | |
26 | directory is hidden, but no other files starting with a dot. The | |
27 | default mode is 'dotGitOnly'. | |
28 | ||
29 | core.ignoreCase:: | |
30 | Internal variable which enables various workarounds to enable | |
31 | Git to work better on filesystems that are not case sensitive, | |
32 | like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing | |
33 | finds "makefile" when Git expects "Makefile", Git will assume | |
34 | it is really the same file, and continue to remember it as | |
35 | "Makefile". | |
36 | + | |
37 | The default is false, except linkgit:git-clone[1] or linkgit:git-init[1] | |
38 | will probe and set core.ignoreCase true if appropriate when the repository | |
39 | is created. | |
40 | + | |
41 | Git relies on the proper configuration of this variable for your operating | |
42 | and file system. Modifying this value may result in unexpected behavior. | |
43 | ||
44 | core.precomposeUnicode:: | |
45 | This option is only used by Mac OS implementation of Git. | |
46 | When core.precomposeUnicode=true, Git reverts the unicode decomposition | |
47 | of filenames done by Mac OS. This is useful when sharing a repository | |
48 | between Mac OS and Linux or Windows. | |
49 | (Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7). | |
50 | When false, file names are handled fully transparent by Git, | |
51 | which is backward compatible with older versions of Git. | |
52 | ||
53 | core.protectHFS:: | |
54 | If set to true, do not allow checkout of paths that would | |
55 | be considered equivalent to `.git` on an HFS+ filesystem. | |
56 | Defaults to `true` on Mac OS, and `false` elsewhere. | |
57 | ||
58 | core.protectNTFS:: | |
59 | If set to true, do not allow checkout of paths that would | |
60 | cause problems with the NTFS filesystem, e.g. conflict with | |
61 | 8.3 "short" names. | |
62 | Defaults to `true` on Windows, and `false` elsewhere. | |
63 | ||
64 | core.fsmonitor:: | |
65 | If set, the value of this variable is used as a command which | |
66 | will identify all files that may have changed since the | |
67 | requested date/time. This information is used to speed up git by | |
68 | avoiding unnecessary processing of files that have not changed. | |
69 | See the "fsmonitor-watchman" section of linkgit:githooks[5]. | |
70 | ||
dfaed028 KW |
71 | core.fsmonitorHookVersion:: |
72 | Sets the version of hook that is to be used when calling fsmonitor. | |
73 | There are currently versions 1 and 2. When this is not set, | |
74 | version 2 will be tried first and if it fails then version 1 | |
75 | will be tried. Version 1 uses a timestamp as input to determine | |
76 | which files have changes since that time but some monitors | |
77 | like watchman have race conditions when used with a timestamp. | |
78 | Version 2 uses an opaque string so that the monitor can return | |
79 | something that can be used to determine what files have changed | |
80 | without race conditions. | |
81 | ||
1a394fa9 NTND |
82 | core.trustctime:: |
83 | If false, the ctime differences between the index and the | |
84 | working tree are ignored; useful when the inode change time | |
85 | is regularly modified by something outside Git (file system | |
86 | crawlers and some backup systems). | |
87 | See linkgit:git-update-index[1]. True by default. | |
88 | ||
89 | core.splitIndex:: | |
90 | If true, the split-index feature of the index will be used. | |
91 | See linkgit:git-update-index[1]. False by default. | |
92 | ||
93 | core.untrackedCache:: | |
94 | Determines what to do about the untracked cache feature of the | |
95 | index. It will be kept, if this variable is unset or set to | |
96 | `keep`. It will automatically be added if set to `true`. And | |
97 | it will automatically be removed, if set to `false`. Before | |
98 | setting it to `true`, you should check that mtime is working | |
99 | properly on your system. | |
c6cc4c5a DS |
100 | See linkgit:git-update-index[1]. `keep` by default, unless |
101 | `feature.manyFiles` is enabled which sets this setting to | |
102 | `true` by default. | |
1a394fa9 NTND |
103 | |
104 | core.checkStat:: | |
105 | When missing or is set to `default`, many fields in the stat | |
106 | structure are checked to detect if a file has been modified | |
107 | since Git looked at it. When this configuration variable is | |
108 | set to `minimal`, sub-second part of mtime and ctime, the | |
109 | uid and gid of the owner of the file, the inode number (and | |
110 | the device number, if Git was compiled to use it), are | |
111 | excluded from the check among these fields, leaving only the | |
112 | whole-second part of mtime (and ctime, if `core.trustCtime` | |
113 | is set) and the filesize to be checked. | |
114 | + | |
115 | There are implementations of Git that do not leave usable values in | |
116 | some fields (e.g. JGit); by excluding these fields from the | |
117 | comparison, the `minimal` mode may help interoperability when the | |
118 | same repository is used by these other systems at the same time. | |
119 | ||
120 | core.quotePath:: | |
121 | Commands that output paths (e.g. 'ls-files', 'diff'), will | |
122 | quote "unusual" characters in the pathname by enclosing the | |
123 | pathname in double-quotes and escaping those characters with | |
124 | backslashes in the same way C escapes control characters (e.g. | |
125 | `\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with | |
126 | values larger than 0x80 (e.g. octal `\302\265` for "micro" in | |
127 | UTF-8). If this variable is set to false, bytes higher than | |
128 | 0x80 are not considered "unusual" any more. Double-quotes, | |
129 | backslash and control characters are always escaped regardless | |
130 | of the setting of this variable. A simple space character is | |
131 | not considered "unusual". Many commands can output pathnames | |
132 | completely verbatim using the `-z` option. The default value | |
133 | is true. | |
134 | ||
135 | core.eol:: | |
136 | Sets the line ending type to use in the working directory for | |
c9446f05 JK |
137 | files that are marked as text (either by having the `text` |
138 | attribute set, or by having `text=auto` and Git auto-detecting | |
139 | the contents as text). | |
1a394fa9 NTND |
140 | Alternatives are 'lf', 'crlf' and 'native', which uses the platform's |
141 | native line ending. The default value is `native`. See | |
142 | linkgit:gitattributes[5] for more information on end-of-line | |
c9446f05 JK |
143 | conversion. Note that this value is ignored if `core.autocrlf` |
144 | is set to `true` or `input`. | |
1a394fa9 NTND |
145 | |
146 | core.safecrlf:: | |
147 | If true, makes Git check if converting `CRLF` is reversible when | |
148 | end-of-line conversion is active. Git will verify if a command | |
149 | modifies a file in the work tree either directly or indirectly. | |
150 | For example, committing a file followed by checking out the | |
151 | same file should yield the original file in the work tree. If | |
152 | this is not the case for the current setting of | |
153 | `core.autocrlf`, Git will reject the file. The variable can | |
154 | be set to "warn", in which case Git will only warn about an | |
155 | irreversible conversion but continue the operation. | |
156 | + | |
157 | CRLF conversion bears a slight chance of corrupting data. | |
158 | When it is enabled, Git will convert CRLF to LF during commit and LF to | |
159 | CRLF during checkout. A file that contains a mixture of LF and | |
160 | CRLF before the commit cannot be recreated by Git. For text | |
161 | files this is the right thing to do: it corrects line endings | |
162 | such that we have only LF line endings in the repository. | |
163 | But for binary files that are accidentally classified as text the | |
164 | conversion can corrupt data. | |
165 | + | |
166 | If you recognize such corruption early you can easily fix it by | |
167 | setting the conversion type explicitly in .gitattributes. Right | |
168 | after committing you still have the original file in your work | |
169 | tree and this file is not yet corrupted. You can explicitly tell | |
170 | Git that this file is binary and Git will handle the file | |
171 | appropriately. | |
172 | + | |
173 | Unfortunately, the desired effect of cleaning up text files with | |
174 | mixed line endings and the undesired effect of corrupting binary | |
175 | files cannot be distinguished. In both cases CRLFs are removed | |
176 | in an irreversible way. For text files this is the right thing | |
177 | to do because CRLFs are line endings, while for binary files | |
178 | converting CRLFs corrupts data. | |
179 | + | |
180 | Note, this safety check does not mean that a checkout will generate a | |
181 | file identical to the original file for a different setting of | |
182 | `core.eol` and `core.autocrlf`, but only for the current one. For | |
183 | example, a text file with `LF` would be accepted with `core.eol=lf` | |
184 | and could later be checked out with `core.eol=crlf`, in which case the | |
185 | resulting file would contain `CRLF`, although the original file | |
186 | contained `LF`. However, in both work trees the line endings would be | |
187 | consistent, that is either all `LF` or all `CRLF`, but never mixed. A | |
188 | file with mixed line endings would be reported by the `core.safecrlf` | |
189 | mechanism. | |
190 | ||
191 | core.autocrlf:: | |
192 | Setting this variable to "true" is the same as setting | |
193 | the `text` attribute to "auto" on all files and core.eol to "crlf". | |
194 | Set to true if you want to have `CRLF` line endings in your | |
195 | working directory and the repository has LF line endings. | |
196 | This variable can be set to 'input', | |
197 | in which case no output conversion is performed. | |
198 | ||
199 | core.checkRoundtripEncoding:: | |
200 | A comma and/or whitespace separated list of encodings that Git | |
201 | performs UTF-8 round trip checks on if they are used in an | |
202 | `working-tree-encoding` attribute (see linkgit:gitattributes[5]). | |
203 | The default value is `SHIFT-JIS`. | |
204 | ||
205 | core.symlinks:: | |
206 | If false, symbolic links are checked out as small plain files that | |
207 | contain the link text. linkgit:git-update-index[1] and | |
208 | linkgit:git-add[1] will not change the recorded type to regular | |
209 | file. Useful on filesystems like FAT that do not support | |
210 | symbolic links. | |
211 | + | |
212 | The default is true, except linkgit:git-clone[1] or linkgit:git-init[1] | |
213 | will probe and set core.symlinks false if appropriate when the repository | |
214 | is created. | |
215 | ||
216 | core.gitProxy:: | |
217 | A "proxy command" to execute (as 'command host port') instead | |
218 | of establishing direct connection to the remote server when | |
219 | using the Git protocol for fetching. If the variable value is | |
220 | in the "COMMAND for DOMAIN" format, the command is applied only | |
221 | on hostnames ending with the specified domain string. This variable | |
222 | may be set multiple times and is matched in the given order; | |
223 | the first match wins. | |
224 | + | |
225 | Can be overridden by the `GIT_PROXY_COMMAND` environment variable | |
226 | (which always applies universally, without the special "for" | |
227 | handling). | |
228 | + | |
229 | The special string `none` can be used as the proxy command to | |
230 | specify that no proxy be used for a given domain pattern. | |
231 | This is useful for excluding servers inside a firewall from | |
232 | proxy use, while defaulting to a common proxy for external domains. | |
233 | ||
234 | core.sshCommand:: | |
235 | If this variable is set, `git fetch` and `git push` will | |
236 | use the specified command instead of `ssh` when they need to | |
237 | connect to a remote system. The command is in the same form as | |
238 | the `GIT_SSH_COMMAND` environment variable and is overridden | |
239 | when the environment variable is set. | |
240 | ||
241 | core.ignoreStat:: | |
242 | If true, Git will avoid using lstat() calls to detect if files have | |
243 | changed by setting the "assume-unchanged" bit for those tracked files | |
244 | which it has updated identically in both the index and working tree. | |
245 | + | |
246 | When files are modified outside of Git, the user will need to stage | |
247 | the modified files explicitly (e.g. see 'Examples' section in | |
248 | linkgit:git-update-index[1]). | |
249 | Git will not normally detect changes to those files. | |
250 | + | |
251 | This is useful on systems where lstat() calls are very slow, such as | |
252 | CIFS/Microsoft Windows. | |
253 | + | |
254 | False by default. | |
255 | ||
256 | core.preferSymlinkRefs:: | |
257 | Instead of the default "symref" format for HEAD | |
258 | and other symbolic reference files, use symbolic links. | |
259 | This is sometimes needed to work with old scripts that | |
260 | expect HEAD to be a symbolic link. | |
261 | ||
262 | core.alternateRefsCommand:: | |
263 | When advertising tips of available history from an alternate, use the shell to | |
264 | execute the specified command instead of linkgit:git-for-each-ref[1]. The | |
265 | first argument is the absolute path of the alternate. Output must contain one | |
fd7761a1 | 266 | hex object id per line (i.e., the same as produced by `git for-each-ref |
1a394fa9 NTND |
267 | --format='%(objectname)'`). |
268 | + | |
269 | Note that you cannot generally put `git for-each-ref` directly into the config | |
270 | value, as it does not take a repository path as an argument (but you can wrap | |
271 | the command above in a shell script). | |
272 | ||
273 | core.alternateRefsPrefixes:: | |
274 | When listing references from an alternate, list only references that begin | |
275 | with the given prefix. Prefixes match as if they were given as arguments to | |
276 | linkgit:git-for-each-ref[1]. To list multiple prefixes, separate them with | |
277 | whitespace. If `core.alternateRefsCommand` is set, setting | |
278 | `core.alternateRefsPrefixes` has no effect. | |
279 | ||
280 | core.bare:: | |
281 | If true this repository is assumed to be 'bare' and has no | |
282 | working directory associated with it. If this is the case a | |
283 | number of commands that require a working directory will be | |
284 | disabled, such as linkgit:git-add[1] or linkgit:git-merge[1]. | |
285 | + | |
286 | This setting is automatically guessed by linkgit:git-clone[1] or | |
287 | linkgit:git-init[1] when the repository was created. By default a | |
288 | repository that ends in "/.git" is assumed to be not bare (bare = | |
289 | false), while all other repositories are assumed to be bare (bare | |
290 | = true). | |
291 | ||
292 | core.worktree:: | |
293 | Set the path to the root of the working tree. | |
294 | If `GIT_COMMON_DIR` environment variable is set, core.worktree | |
295 | is ignored and not used for determining the root of working tree. | |
296 | This can be overridden by the `GIT_WORK_TREE` environment | |
297 | variable and the `--work-tree` command-line option. | |
298 | The value can be an absolute path or relative to the path to | |
299 | the .git directory, which is either specified by --git-dir | |
300 | or GIT_DIR, or automatically discovered. | |
301 | If --git-dir or GIT_DIR is specified but none of | |
302 | --work-tree, GIT_WORK_TREE and core.worktree is specified, | |
303 | the current working directory is regarded as the top level | |
304 | of your working tree. | |
305 | + | |
306 | Note that this variable is honored even when set in a configuration | |
307 | file in a ".git" subdirectory of a directory and its value differs | |
308 | from the latter directory (e.g. "/path/to/.git/config" has | |
309 | core.worktree set to "/different/path"), which is most likely a | |
310 | misconfiguration. Running Git commands in the "/path/to" directory will | |
311 | still use "/different/path" as the root of the work tree and can cause | |
312 | confusion unless you know what you are doing (e.g. you are creating a | |
313 | read-only snapshot of the same index to a location different from the | |
314 | repository's usual working tree). | |
315 | ||
316 | core.logAllRefUpdates:: | |
317 | Enable the reflog. Updates to a ref <ref> is logged to the file | |
318 | "`$GIT_DIR/logs/<ref>`", by appending the new and old | |
319 | SHA-1, the date/time and the reason of the update, but | |
320 | only when the file exists. If this configuration | |
321 | variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`" | |
322 | file is automatically created for branch heads (i.e. under | |
323 | `refs/heads/`), remote refs (i.e. under `refs/remotes/`), | |
324 | note refs (i.e. under `refs/notes/`), and the symbolic ref `HEAD`. | |
325 | If it is set to `always`, then a missing reflog is automatically | |
326 | created for any ref under `refs/`. | |
327 | + | |
328 | This information can be used to determine what commit | |
329 | was the tip of a branch "2 days ago". | |
330 | + | |
331 | This value is true by default in a repository that has | |
332 | a working directory associated with it, and false by | |
333 | default in a bare repository. | |
334 | ||
335 | core.repositoryFormatVersion:: | |
336 | Internal variable identifying the repository format and layout | |
337 | version. | |
338 | ||
339 | core.sharedRepository:: | |
340 | When 'group' (or 'true'), the repository is made shareable between | |
341 | several users in a group (making sure all the files and objects are | |
342 | group-writable). When 'all' (or 'world' or 'everybody'), the | |
343 | repository will be readable by all users, additionally to being | |
344 | group-shareable. When 'umask' (or 'false'), Git will use permissions | |
345 | reported by umask(2). When '0xxx', where '0xxx' is an octal number, | |
346 | files in the repository will have this mode value. '0xxx' will override | |
347 | user's umask value (whereas the other options will only override | |
348 | requested parts of the user's umask value). Examples: '0660' will make | |
349 | the repo read/write-able for the owner and group, but inaccessible to | |
350 | others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a | |
351 | repository that is group-readable but not group-writable. | |
352 | See linkgit:git-init[1]. False by default. | |
353 | ||
354 | core.warnAmbiguousRefs:: | |
355 | If true, Git will warn you if the ref name you passed it is ambiguous | |
356 | and might match multiple refs in the repository. True by default. | |
357 | ||
358 | core.compression:: | |
359 | An integer -1..9, indicating a default compression level. | |
360 | -1 is the zlib default. 0 means no compression, | |
361 | and 1..9 are various speed/size tradeoffs, 9 being slowest. | |
362 | If set, this provides a default to other compression variables, | |
363 | such as `core.looseCompression` and `pack.compression`. | |
364 | ||
365 | core.looseCompression:: | |
366 | An integer -1..9, indicating the compression level for objects that | |
367 | are not in a pack file. -1 is the zlib default. 0 means no | |
368 | compression, and 1..9 are various speed/size tradeoffs, 9 being | |
369 | slowest. If not set, defaults to core.compression. If that is | |
370 | not set, defaults to 1 (best speed). | |
371 | ||
372 | core.packedGitWindowSize:: | |
373 | Number of bytes of a pack file to map into memory in a | |
374 | single mapping operation. Larger window sizes may allow | |
375 | your system to process a smaller number of large pack files | |
376 | more quickly. Smaller window sizes will negatively affect | |
377 | performance due to increased calls to the operating system's | |
378 | memory manager, but may improve performance when accessing | |
379 | a large number of large pack files. | |
380 | + | |
381 | Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32 | |
382 | MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should | |
383 | be reasonable for all users/operating systems. You probably do | |
384 | not need to adjust this value. | |
385 | + | |
386 | Common unit suffixes of 'k', 'm', or 'g' are supported. | |
387 | ||
388 | core.packedGitLimit:: | |
389 | Maximum number of bytes to map simultaneously into memory | |
390 | from pack files. If Git needs to access more than this many | |
391 | bytes at once to complete an operation it will unmap existing | |
392 | regions to reclaim virtual address space within the process. | |
393 | + | |
394 | Default is 256 MiB on 32 bit platforms and 32 TiB (effectively | |
395 | unlimited) on 64 bit platforms. | |
396 | This should be reasonable for all users/operating systems, except on | |
397 | the largest projects. You probably do not need to adjust this value. | |
398 | + | |
399 | Common unit suffixes of 'k', 'm', or 'g' are supported. | |
400 | ||
401 | core.deltaBaseCacheLimit:: | |
009be0d2 | 402 | Maximum number of bytes per thread to reserve for caching base objects |
1a394fa9 NTND |
403 | that may be referenced by multiple deltified objects. By storing the |
404 | entire decompressed base objects in a cache Git is able | |
405 | to avoid unpacking and decompressing frequently used base | |
406 | objects multiple times. | |
407 | + | |
408 | Default is 96 MiB on all platforms. This should be reasonable | |
409 | for all users/operating systems, except on the largest projects. | |
410 | You probably do not need to adjust this value. | |
411 | + | |
412 | Common unit suffixes of 'k', 'm', or 'g' are supported. | |
413 | ||
414 | core.bigFileThreshold:: | |
415 | Files larger than this size are stored deflated, without | |
416 | attempting delta compression. Storing large files without | |
417 | delta compression avoids excessive memory usage, at the | |
418 | slight expense of increased disk usage. Additionally files | |
419 | larger than this size are always treated as binary. | |
420 | + | |
421 | Default is 512 MiB on all platforms. This should be reasonable | |
422 | for most projects as source code and other text files can still | |
423 | be delta compressed, but larger binary media files won't be. | |
424 | + | |
425 | Common unit suffixes of 'k', 'm', or 'g' are supported. | |
426 | ||
427 | core.excludesFile:: | |
428 | Specifies the pathname to the file that contains patterns to | |
429 | describe paths that are not meant to be tracked, in addition | |
68ed71b5 | 430 | to `.gitignore` (per-directory) and `.git/info/exclude`. |
1a394fa9 NTND |
431 | Defaults to `$XDG_CONFIG_HOME/git/ignore`. |
432 | If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore` | |
433 | is used instead. See linkgit:gitignore[5]. | |
434 | ||
435 | core.askPass:: | |
436 | Some commands (e.g. svn and http interfaces) that interactively | |
437 | ask for a password can be told to use an external program given | |
438 | via the value of this variable. Can be overridden by the `GIT_ASKPASS` | |
439 | environment variable. If not set, fall back to the value of the | |
440 | `SSH_ASKPASS` environment variable or, failing that, a simple password | |
441 | prompt. The external program shall be given a suitable prompt as | |
442 | command-line argument and write the password on its STDOUT. | |
443 | ||
444 | core.attributesFile:: | |
68ed71b5 CB |
445 | In addition to `.gitattributes` (per-directory) and |
446 | `.git/info/attributes`, Git looks into this file for attributes | |
1a394fa9 NTND |
447 | (see linkgit:gitattributes[5]). Path expansions are made the same |
448 | way as for `core.excludesFile`. Its default value is | |
449 | `$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not | |
450 | set or empty, `$HOME/.config/git/attributes` is used instead. | |
451 | ||
452 | core.hooksPath:: | |
453 | By default Git will look for your hooks in the | |
68ed71b5 CB |
454 | `$GIT_DIR/hooks` directory. Set this to different path, |
455 | e.g. `/etc/git/hooks`, and Git will try to find your hooks in | |
456 | that directory, e.g. `/etc/git/hooks/pre-receive` instead of | |
457 | in `$GIT_DIR/hooks/pre-receive`. | |
1a394fa9 NTND |
458 | + |
459 | The path can be either absolute or relative. A relative path is | |
460 | taken as relative to the directory where the hooks are run (see | |
461 | the "DESCRIPTION" section of linkgit:githooks[5]). | |
462 | + | |
463 | This configuration variable is useful in cases where you'd like to | |
464 | centrally configure your Git hooks instead of configuring them on a | |
465 | per-repository basis, or as a more flexible and centralized | |
466 | alternative to having an `init.templateDir` where you've changed | |
467 | default hooks. | |
468 | ||
469 | core.editor:: | |
470 | Commands such as `commit` and `tag` that let you edit | |
471 | messages by launching an editor use the value of this | |
472 | variable when it is set, and the environment variable | |
473 | `GIT_EDITOR` is not set. See linkgit:git-var[1]. | |
474 | ||
475 | core.commentChar:: | |
476 | Commands such as `commit` and `tag` that let you edit | |
477 | messages consider a line that begins with this character | |
478 | commented, and removes them after the editor returns | |
479 | (default '#'). | |
480 | + | |
481 | If set to "auto", `git-commit` would select a character that is not | |
482 | the beginning character of any line in existing commit messages. | |
483 | ||
484 | core.filesRefLockTimeout:: | |
485 | The length of time, in milliseconds, to retry when trying to | |
486 | lock an individual reference. Value 0 means not to retry at | |
487 | all; -1 means to try indefinitely. Default is 100 (i.e., | |
488 | retry for 100ms). | |
489 | ||
490 | core.packedRefsTimeout:: | |
491 | The length of time, in milliseconds, to retry when trying to | |
492 | lock the `packed-refs` file. Value 0 means not to retry at | |
493 | all; -1 means to try indefinitely. Default is 1000 (i.e., | |
494 | retry for 1 second). | |
495 | ||
496 | core.pager:: | |
497 | Text viewer for use by Git commands (e.g., 'less'). The value | |
498 | is meant to be interpreted by the shell. The order of preference | |
499 | is the `$GIT_PAGER` environment variable, then `core.pager` | |
500 | configuration, then `$PAGER`, and then the default chosen at | |
501 | compile time (usually 'less'). | |
502 | + | |
503 | When the `LESS` environment variable is unset, Git sets it to `FRX` | |
504 | (if `LESS` environment variable is set, Git does not change it at | |
505 | all). If you want to selectively override Git's default setting | |
506 | for `LESS`, you can set `core.pager` to e.g. `less -S`. This will | |
507 | be passed to the shell by Git, which will translate the final | |
508 | command to `LESS=FRX less -S`. The environment does not set the | |
509 | `S` option but the command line does, instructing less to truncate | |
510 | long lines. Similarly, setting `core.pager` to `less -+F` will | |
511 | deactivate the `F` option specified by the environment from the | |
512 | command-line, deactivating the "quit if one screen" behavior of | |
513 | `less`. One can specifically activate some flags for particular | |
514 | commands: for example, setting `pager.blame` to `less -S` enables | |
515 | line truncation only for `git blame`. | |
516 | + | |
517 | Likewise, when the `LV` environment variable is unset, Git sets it | |
518 | to `-c`. You can override this setting by exporting `LV` with | |
519 | another value or setting `core.pager` to `lv +c`. | |
520 | ||
521 | core.whitespace:: | |
522 | A comma separated list of common whitespace problems to | |
523 | notice. 'git diff' will use `color.diff.whitespace` to | |
524 | highlight them, and 'git apply --whitespace=error' will | |
525 | consider them as errors. You can prefix `-` to disable | |
526 | any of them (e.g. `-trailing-space`): | |
527 | + | |
528 | * `blank-at-eol` treats trailing whitespaces at the end of the line | |
529 | as an error (enabled by default). | |
530 | * `space-before-tab` treats a space character that appears immediately | |
531 | before a tab character in the initial indent part of the line as an | |
532 | error (enabled by default). | |
533 | * `indent-with-non-tab` treats a line that is indented with space | |
534 | characters instead of the equivalent tabs as an error (not enabled by | |
535 | default). | |
536 | * `tab-in-indent` treats a tab character in the initial indent part of | |
537 | the line as an error (not enabled by default). | |
538 | * `blank-at-eof` treats blank lines added at the end of file as an error | |
539 | (enabled by default). | |
540 | * `trailing-space` is a short-hand to cover both `blank-at-eol` and | |
541 | `blank-at-eof`. | |
542 | * `cr-at-eol` treats a carriage-return at the end of line as | |
543 | part of the line terminator, i.e. with it, `trailing-space` | |
544 | does not trigger if the character before such a carriage-return | |
545 | is not a whitespace (not enabled by default). | |
546 | * `tabwidth=<n>` tells how many character positions a tab occupies; this | |
547 | is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent` | |
548 | errors. The default tab width is 8. Allowed values are 1 to 63. | |
549 | ||
550 | core.fsyncObjectFiles:: | |
551 | This boolean will enable 'fsync()' when writing object files. | |
552 | + | |
553 | This is a total waste of time and effort on a filesystem that orders | |
554 | data writes properly, but can be useful for filesystems that do not use | |
555 | journalling (traditional UNIX filesystems) or that only journal metadata | |
556 | and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback"). | |
557 | ||
558 | core.preloadIndex:: | |
559 | Enable parallel index preload for operations like 'git diff' | |
560 | + | |
561 | This can speed up operations like 'git diff' and 'git status' especially | |
562 | on filesystems like NFS that have weak caching semantics and thus | |
563 | relatively high IO latencies. When enabled, Git will do the | |
564 | index comparison to the filesystem data in parallel, allowing | |
565 | overlapping IO's. Defaults to true. | |
566 | ||
6c268fdd JH |
567 | core.unsetenvvars:: |
568 | Windows-only: comma-separated list of environment variables' | |
569 | names that need to be unset before spawning any other process. | |
570 | Defaults to `PERL5LIB` to account for the fact that Git for | |
571 | Windows insists on using its own Perl interpreter. | |
572 | ||
ac33519d JS |
573 | core.restrictinheritedhandles:: |
574 | Windows-only: override whether spawned processes inherit only standard | |
575 | file handles (`stdin`, `stdout` and `stderr`) or all handles. Can be | |
576 | `auto`, `true` or `false`. Defaults to `auto`, which means `true` on | |
577 | Windows 7 and later, and `false` on older Windows versions. | |
578 | ||
1a394fa9 NTND |
579 | core.createObject:: |
580 | You can set this to 'link', in which case a hardlink followed by | |
581 | a delete of the source are used to make sure that object creation | |
582 | will not overwrite existing objects. | |
583 | + | |
584 | On some file system/operating system combinations, this is unreliable. | |
585 | Set this config setting to 'rename' there; However, This will remove the | |
586 | check that makes sure that existing object files will not get overwritten. | |
587 | ||
588 | core.notesRef:: | |
589 | When showing commit messages, also show notes which are stored in | |
590 | the given ref. The ref must be fully qualified. If the given | |
591 | ref does not exist, it is not an error but means that no | |
592 | notes should be printed. | |
593 | + | |
594 | This setting defaults to "refs/notes/commits", and it can be overridden by | |
595 | the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1]. | |
596 | ||
597 | core.commitGraph:: | |
598 | If true, then git will read the commit-graph file (if it exists) | |
31b1de6a | 599 | to parse the graph structure of commits. Defaults to true. See |
1a394fa9 NTND |
600 | linkgit:git-commit-graph[1] for more information. |
601 | ||
602 | core.useReplaceRefs:: | |
603 | If set to `false`, behave as if the `--no-replace-objects` | |
604 | option was given on the command line. See linkgit:git[1] and | |
605 | linkgit:git-replace[1] for more information. | |
606 | ||
607 | core.multiPackIndex:: | |
608 | Use the multi-pack-index file to track multiple packfiles using a | |
18e449f8 DS |
609 | single index. See linkgit:git-multi-pack-index[1] for more |
610 | information. Defaults to true. | |
1a394fa9 NTND |
611 | |
612 | core.sparseCheckout:: | |
879321eb DS |
613 | Enable "sparse checkout" feature. See linkgit:git-sparse-checkout[1] |
614 | for more information. | |
615 | ||
616 | core.sparseCheckoutCone:: | |
617 | Enables the "cone mode" of the sparse checkout feature. When the | |
618 | sparse-checkout file contains a limited set of patterns, then this | |
619 | mode provides significant performance advantages. See | |
620 | linkgit:git-sparse-checkout[1] for more information. | |
1a394fa9 NTND |
621 | |
622 | core.abbrev:: | |
623 | Set the length object names are abbreviated to. If | |
624 | unspecified or set to "auto", an appropriate value is | |
625 | computed based on the approximate number of packed objects | |
626 | in your repository, which hopefully is enough for | |
627 | abbreviated object names to stay unique for some time. | |
a9ecaa06 EW |
628 | If set to "no", no abbreviation is made and the object names |
629 | are shown in their full length. | |
1a394fa9 | 630 | The minimum length is 4. |