Git config
Internal
Overview
git config
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:
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
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.