From: Junio C Hamano Date: Fri, 12 Jul 2013 19:04:04 +0000 (-0700) Subject: Merge branch 'jk/maint-config-multi-order' X-Git-Tag: v1.8.4-rc0~70 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e70aee5c86c508af4a92bd02b688b4aa39c58180?hp=-c Merge branch 'jk/maint-config-multi-order' * jk/maint-config-multi-order: git-config(1): clarify precedence of multiple values --- e70aee5c86c508af4a92bd02b688b4aa39c58180 diff --combined Documentation/git-config.txt index fbad05e46f,e60b7b6f10..99dc497b6f --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@@ -82,7 -82,7 +82,7 @@@ OPTION --get:: Get the value for a given key (optionally filtered by a regex matching the value). Returns error code 1 if the key was not - found and error code 2 if multiple key values were found. + found and the last value if multiple key values were found. --get-all:: Like get, but does not fail if the number of values for the key @@@ -114,15 -114,6 +114,15 @@@ rather than from all available files + See also <>. +--local:: + For writing options: write to the repository .git/config file. + This is the default behavior. ++ +For reading options: read only from the repository .git/config rather than +from all available files. ++ +See also <>. + -f config-file:: --file config-file:: Use the given config file instead of the one specified by GIT_CONFIG. @@@ -206,12 -197,8 +206,8 @@@ FILE If not set explicitly with '--file', there are four files where 'git config' will search for configuration options: - $GIT_DIR/config:: - Repository specific configuration file. - - ~/.gitconfig:: - User-specific configuration file. Also called "global" - configuration file. + $(prefix)/etc/gitconfig:: + System-wide configuration file. $XDG_CONFIG_HOME/git/config:: Second user-specific configuration file. If $XDG_CONFIG_HOME is not set @@@ -221,8 -208,12 +217,12 @@@ you sometimes use older versions of Git, as support for this file was added fairly recently. - $(prefix)/etc/gitconfig:: - System-wide configuration file. + ~/.gitconfig:: + User-specific configuration file. Also called "global" + configuration file. + + $GIT_DIR/config:: + Repository specific 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 @@@ -230,6 -221,10 +230,10 @@@ file are not available they will be ign 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. + The files are read in the order given above, with last value found taking + precedence over values read earlier. When multiple values are taken then all + values of a key from all files will be used. + 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*.