Git config: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
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:

Remotes

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.