Git config: Difference between revisions
Line 8: | Line 8: | ||
=Overview= | =Overview= | ||
<code>git config</code> is used to read and manipulate entries in the Git configuration files. There are three levels of configuration files, listed below from the highest precedence to the lowest: | <code>git config</code> is used to read and manipulate entries in the Git configuration files. <code>git config --get</code> is a reliable source of information about the repository, such as the remote origins URLs. There are three levels of configuration files, listed below from the highest precedence to the lowest: | ||
1. '''file''' (<code>.git/config</code>). This file contains repository-specific configuration and has the highest precedence. Repository-specific configuration is manipulated when <code>git config</code> gets the <code>--local</code> option. This is the default. | 1. '''file''' (<code>.git/config</code>). This file contains repository-specific configuration and has the highest precedence. Repository-specific configuration is manipulated when <code>git config</code> gets the <code>--local</code> option. This is the default. |
Revision as of 02:33, 25 July 2023
Internal
Overview
git config
is used to read and manipulate entries in the Git configuration files. git config --get
is a reliable source of information about the repository, such as the remote origins URLs. There are three levels of configuration files, listed below from the highest precedence to the lowest:
1. file (.git/config
). This file contains repository-specific configuration and has the highest precedence. Repository-specific configuration is manipulated when git config
gets the --local
option. This is the default.
2. global (~/.gitconfig
). This file contains user-specific configuration and it is manipulated when git config
gets the --global
option.
3. system (/etc/gitconfig
). This file contains system-wide configuration and can be manipulated with the --system
option, if the user has proper permissions.
The configuration files are not replicated during git clone.
More info:
git config --help
Configuration Operations
List the Configuration
git config [--system|--global|--local] -l
List the Remote Origin URL
git config --get remote.<origin-name>.url
git config --get remote.origin.url
Configure a Setting
git config [--system|--global|--file] <some.git.option> <value>
git config --global push.autoSetupRemote true
Get a Setting
git config --get <option-name>
Remove a Setting
git config --unset [--file|--global|--system] <some.git.option>
Remote Manipulation
See:
Recipes
Configure the Commit Author
This command configures the current repository only (--local
is implied by default):
git config user.name "Ovidiu Feodorov"
git config user.email "ovidiu@feodorov.com"
The configuration propagates to .git/config [user] section.
The same effect can be achieved by setting GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL environment variables.
To configure commit author information for all repositories the user interacts with, use --global
. If set on a specific repository, the repository-specific setting will take precedence. For more details on configuration hierarchy, see Git Configuration.
git config --global user.name "Ovidiu Feodorov"
git config --global user.email "ovidiu@feodorov.com"
Configure an Alias
git config --global alias.show-graph 'log --graph --abbrev-commit --pretty=oneline'
Turn Off SSL Server Certificate Verification for a Specific Repository
The setting is controlled by http.sslVerify configuration element:
cd <repository-dir> git config http.sslVerify true|false
and ends up in modifying .git/config's [http] section as follows:
[http] sslVerify = true|false
The configuration setting is overridden by the GIT_SSL_NO_VERIFY environment variable.