Repository specific configuration file. (The filename is +of course relative to the repository root, not the working +directory.)+
From 6fddfe5dae5b964e29b5d594311b4ab3c963b711 Mon Sep 17 00:00:00 2001
From: Junio C Hamano
The type specifier can be either --int or --bool, which will make git-config ensure that the variable(s) are of the given type and convert the value to the canonical form (simple decimal number for int, @@ -335,7 +335,7 @@ you try to unset/set an option for which multiple lines match, or
-you use --global option without $HOME being properly set. +you use --global option without $HOME being properly set.
- Use global ~/.gitconfig file rather than the repository .git/config. + For writing options: write to global ~/.gitconfig file rather than + the repository .git/config.
+For reading options: read only from global ~/.gitconfig rather than +from all available files.
+See also [FILES].
- Use system-wide $(prefix)/etc/gitconfig rather than the repository - .git/config. + For writing options: write to system-wide $(prefix)/etc/gitconfig + rather than the repository .git/config.
+For reading options: read only from system-wide $(prefix)/etc/gitconfig +rather than from all available files.
+See also [FILES].
There are three files where git-config will search for configuration +options:
+Repository specific configuration file. (The filename is +of course relative to the repository root, not the working +directory.)+
+ User-specific configuration file. Also called "global" + configuration file. +
++ System-wide configuration file. +
+If no further options are given, all reading options will read all of these +files that are available. If the global or the system-wide configuration +file are not available they will be ignored. If the repository configuration +file is not available or readable, git-config will exit with a non-zero +error code. However, in neither case will an error message be issued.
+All writing options will per default write to the repository specific +configuration file. Note that this also affects options like --replace-all +and --unset. git-config will only ever change one file at a time.
+You can override these rules either by command line options or by environment +variables. The --global and the --system options will limit the file used +to the global or system-wide file respectively. The GIT_CONFIG environment +variable has a similar effect, but you can specify any filename you want.
+The GIT_CONFIG_LOCAL environment variable on the other hand only changes +the name used instead of the repository configuration file. The global and +the system-wide configuration files will still be read. (For writing options +this will obviously result in the same behavior as using GIT_CONFIG.)
+Take the configuration from the given file instead of .git/config. - Using the "--global" option forces this to ~/.gitconfig. + Using the "--global" option forces this to ~/.gitconfig. Using the + "--system" option forces this to $(prefix)/etc/gitconfig.
- Currently the same as $GIT_CONFIG; when Git will support global - configuration files, this will cause it to take the configuration - from the global configuration file in addition to the given file. + Take the configuration from the given file instead if .git/config. + Still read the global and the system-wide configuration files, though.
See also [FILES].
Given a .git/config like this: