Git config: Difference between revisions
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Internal= | =Internal= | ||
* [[Git_Commands#Configuration_Commands|Git Commands]] | * [[Git_Commands#Configuration_Commands|Git Commands]] | ||
* [[Git Configuration]] | * [[Git Configuration]] | ||
* [[.gitignore]] | * [[.gitignore]] | ||
=Overview= | =Overview= | ||
<code>git config</code> is used to read and manipulate entries in the [[Git_Configuration#Overview|Git configuration files]]. | |||
<code>git config</code> is used to manipulate entries in Git | |||
More info: | More info: | ||
<syntaxhighlight lang='bash'> | |||
git config --help | |||
</syntaxhighlight> | |||
=Configuration Operations= | =Configuration Operations= | ||
==List the Configuration== | ==List the Configuration== | ||
<syntaxhighlight lang='bash'> | |||
git config [--system|--global|--local] -l | |||
</syntaxhighlight> | |||
===List the Remote Origin URL=== | |||
<syntaxhighlight lang='bash'> | |||
git config --get remote.<origin-name>.url | |||
git config --get remote.origin.url | |||
</syntaxhighlight> | |||
==Configure a Setting== | ==Configure a Setting== | ||
<syntaxhighlight lang='bash'> | |||
git config [--system|--global|--file] <some.git.option> <value> | |||
</syntaxhighlight> | |||
<syntaxhighlight lang='bash'> | |||
git config --global push.autoSetupRemote true | |||
</syntaxhighlight> | |||
==Get a Setting== | ==Get a Setting== | ||
<syntaxhighlight lang='bash'> | |||
git config --get <some.git.option.name> | |||
</syntaxhighlight> | |||
==Remove a Setting== | ==Remove a Setting== | ||
<syntaxhighlight lang='bash'> | |||
git config --unset [--file|--global|--system] <some.git.option> | |||
</syntaxhighlight> | |||
==Remote Manipulation== | ==Remote Manipulation== | ||
See: {{Internal|Git_Concepts#Remote|Remotes}} | See: {{Internal|Git_Concepts#Remote|Remotes}} | ||
=Recipes= | |||
==Configure the Commit Author== | |||
This command configures the current repository only (<code>--local</code> is implied by default): | This command configures the current repository only (<code>--local</code> is implied by default): | ||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
git config user.name "Ovidiu Feodorov" | git config user.name "Ovidiu Feodorov" | ||
git config user.email "ovidiu@ | git config user.email "ovidiu@example.com" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The configuration propagates to [[.git/config#.5Buser.5D|.git/config [user] | The configuration propagates to <code>[[.git/config#.5Buser.5D|.git/config [user]]]</code> section. | ||
The same effect can be achieved by setting [[Git_Environment_Variables#GIT_AUTHOR_NAME|GIT_AUTHOR_NAME]] and [[Git_Environment_Variables#GIT_AUTHOR_EMAIL|GIT_AUTHOR_EMAIL]] environment variables. | The same effect can be achieved by setting <code>[[Git_Environment_Variables#GIT_AUTHOR_NAME|GIT_AUTHOR_NAME]]</code> and <code>[[Git_Environment_Variables#GIT_AUTHOR_EMAIL|GIT_AUTHOR_EMAIL]]</code> environment variables. | ||
To configure commit author information for all repositories the user interacts with, use <code>--global</code>. If set on a specific repository, the repository-specific setting will take precedence. For more details on configuration hierarchy, see [[Git_Configuration#Overview|Git Configuration]]. | To configure commit author information for all repositories the user interacts with, use <code>--global</code>. If set on a specific repository, the repository-specific setting will take precedence. For more details on configuration hierarchy, see [[Git_Configuration#Overview|Git Configuration]]. | ||
Line 63: | Line 60: | ||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
git config --global user.name "Ovidiu Feodorov" | git config --global user.name "Ovidiu Feodorov" | ||
git config --global user.email "ovidiu@ | git config --global user.email "ovidiu@example.com" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Configure an Alias== | |||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
git config --global alias.show-graph 'log --graph --abbrev-commit --pretty=oneline' | git config --global alias.show-graph 'log --graph --abbrev-commit --pretty=oneline' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==<span id='http.sslVerify'></span>Turn Off SSL Server Certificate Verification for a Specific Repository== | |||
The setting is controlled by http.sslVerify configuration element: | The setting is controlled by <code>http.sslVerify</code> configuration element: | ||
<syntaxhighlight lang='bash'> | |||
cd <repository_dir> | |||
git config http.sslVerify true|false | |||
</syntaxhighlight> | |||
and ends up in modifying .git/config's [[.git/config#.5Bhttp.5D|[http]]] section as follows: | and ends up in modifying <code>.git/config</code>'s <code>[[.git/config#.5Bhttp.5D|[http]]]</code> section as follows: | ||
<syntaxhighlight lang='ini'> | |||
[http] | |||
sslVerify = true|false | |||
</syntaxhighlight> | |||
The configuration setting is overridden by the [[Git_Environment_Variables#GIT_SSL_NO_VERIFY|GIT_SSL_NO_VERIFY]] environment variable. | The configuration setting is overridden by the <code>[[Git_Environment_Variables#GIT_SSL_NO_VERIFY|GIT_SSL_NO_VERIFY]]</code> environment variable. | ||
==<span id='Configure_url'></span>Configure and Read <tt>[url]</tt> <tt>insteadOf</tt>== | |||
To read: | |||
<syntaxhighlight lang='bash'> | |||
git config --get url."git@github.com:someorg/somerepo".insteadof | |||
</syntaxhighlight> | |||
To configure: | |||
<syntaxhighlight lang='bash'> | |||
git config --global url."git@github.com:someorg/somerepo".insteadof "https://github.com/someorg/somerepo" | |||
</syntaxhighlight> | |||
Also see: {{Internal|Git_Configuration#insteadOf|Git Configuration <tt>url</tt> <tt>insteadOf</tt>}} |
Latest revision as of 23:21, 9 January 2024
Internal
Overview
git config
is used to read and manipulate entries in the Git configuration files.
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 <some.git.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@example.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@example.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.
Configure and Read [url] insteadOf
To read:
git config --get url."git@github.com:someorg/somerepo".insteadof
To configure:
git config --global url."git@github.com:someorg/somerepo".insteadof "https://github.com/someorg/somerepo"
Also see: