Browse Source
Signed-off-by: Tom Prince <tom.prince@ualberta.net> Signed-off-by: Junio C Hamano <junkio@cox.net>maint
Tom Prince
18 years ago
committed by
Junio C Hamano
58 changed files with 460 additions and 439 deletions
@ -0,0 +1,227 @@
@@ -0,0 +1,227 @@
|
||||
git-config(1) |
||||
============= |
||||
|
||||
NAME |
||||
---- |
||||
git-config - Get and set repository or global options |
||||
|
||||
|
||||
SYNOPSIS |
||||
-------- |
||||
[verse] |
||||
'git-config' [--global] [type] name [value [value_regex]] |
||||
'git-config' [--global] [type] --add name value |
||||
'git-config' [--global] [type] --replace-all name [value [value_regex]] |
||||
'git-config' [--global] [type] --get name [value_regex] |
||||
'git-config' [--global] [type] --get-all name [value_regex] |
||||
'git-config' [--global] [type] --unset name [value_regex] |
||||
'git-config' [--global] [type] --unset-all name [value_regex] |
||||
'git-config' [--global] -l | --list |
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
You can query/set/replace/unset options with this command. The name is |
||||
actually the section and the key separated by a dot, and the value will be |
||||
escaped. |
||||
|
||||
Multiple lines can be added to an option by using the '--add' option. |
||||
If you want to update or unset an option which can occur on multiple |
||||
lines, a POSIX regexp `value_regex` needs to be given. Only the |
||||
existing values that match the regexp are updated or unset. If |
||||
you want to handle the lines that do *not* match the regex, just |
||||
prepend a single exclamation mark in front (see EXAMPLES). |
||||
|
||||
The type specifier can be either '--int' or '--bool', which will make |
||||
'git-config' ensure that the variable(s) are of the given type and |
||||
convert the value to the canonical form (simple decimal number for int, |
||||
a "true" or "false" string for bool). If no type specifier is passed, |
||||
no checks or transformations are performed on the value. |
||||
|
||||
This command will fail if: |
||||
|
||||
. The .git/config file is invalid, |
||||
. Can not write to .git/config, |
||||
. no section was provided, |
||||
. the section or key is invalid, |
||||
. you try to unset an option which does not exist, |
||||
. you try to unset/set an option for which multiple lines match, or |
||||
. you use --global option without $HOME being properly set. |
||||
|
||||
|
||||
OPTIONS |
||||
------- |
||||
|
||||
--replace-all:: |
||||
Default behavior is to replace at most one line. This replaces |
||||
all lines matching the key (and optionally the value_regex). |
||||
|
||||
--add:: |
||||
Adds a new line to the option without altering any existing |
||||
values. This is the same as providing '^$' as the value_regex. |
||||
|
||||
--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. |
||||
|
||||
--get-all:: |
||||
Like get, but does not fail if the number of values for the key |
||||
is not exactly one. |
||||
|
||||
--get-regexp:: |
||||
Like --get-all, but interprets the name as a regular expression. |
||||
|
||||
--global:: |
||||
Use global ~/.gitconfig file rather than the repository .git/config. |
||||
|
||||
--unset:: |
||||
Remove the line matching the key from config file. |
||||
|
||||
--unset-all:: |
||||
Remove all matching lines from config file. |
||||
|
||||
-l, --list:: |
||||
List all variables set in config file. |
||||
|
||||
--bool:: |
||||
git-config will ensure that the output is "true" or "false" |
||||
|
||||
--int:: |
||||
git-config will ensure that the output is a simple |
||||
decimal number. An optional value suffix of 'k', 'm', or 'g' |
||||
in the config file will cause the value to be multiplied |
||||
by 1024, 1048576, or 1073741824 prior to output. |
||||
|
||||
|
||||
ENVIRONMENT |
||||
----------- |
||||
|
||||
GIT_CONFIG:: |
||||
Take the configuration from the given file instead of .git/config. |
||||
Using the "--global" option forces this to ~/.gitconfig. |
||||
|
||||
GIT_CONFIG_LOCAL:: |
||||
Currently the same as $GIT_CONFIG; when Git will support global |
||||
configuration files, this will cause it to take the configuration |
||||
from the global configuration file in addition to the given file. |
||||
|
||||
|
||||
EXAMPLE |
||||
------- |
||||
|
||||
Given a .git/config like this: |
||||
|
||||
# |
||||
# This is the config file, and |
||||
# a '#' or ';' character indicates |
||||
# a comment |
||||
# |
||||
|
||||
; core variables |
||||
[core] |
||||
; Don't trust file modes |
||||
filemode = false |
||||
|
||||
; Our diff algorithm |
||||
[diff] |
||||
external = "/usr/local/bin/gnu-diff -u" |
||||
renames = true |
||||
|
||||
; Proxy settings |
||||
[core] |
||||
gitproxy="ssh" for "ssh://kernel.org/" |
||||
gitproxy="proxy-command" for kernel.org |
||||
gitproxy="myprotocol-command" for "my://" |
||||
gitproxy=default-proxy ; for all the rest |
||||
|
||||
you can set the filemode to true with |
||||
|
||||
------------ |
||||
% git config core.filemode true |
||||
------------ |
||||
|
||||
The hypothetical proxy command entries actually have a postfix to discern |
||||
what URL they apply to. Here is how to change the entry for kernel.org |
||||
to "ssh". |
||||
|
||||
------------ |
||||
% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$' |
||||
------------ |
||||
|
||||
This makes sure that only the key/value pair for kernel.org is replaced. |
||||
|
||||
To delete the entry for renames, do |
||||
|
||||
------------ |
||||
% git config --unset diff.renames |
||||
------------ |
||||
|
||||
If you want to delete an entry for a multivar (like core.gitproxy above), |
||||
you have to provide a regex matching the value of exactly one line. |
||||
|
||||
To query the value for a given key, do |
||||
|
||||
------------ |
||||
% git config --get core.filemode |
||||
------------ |
||||
|
||||
or |
||||
|
||||
------------ |
||||
% git config core.filemode |
||||
------------ |
||||
|
||||
or, to query a multivar: |
||||
|
||||
------------ |
||||
% git config --get core.gitproxy "for kernel.org$" |
||||
------------ |
||||
|
||||
If you want to know all the values for a multivar, do: |
||||
|
||||
------------ |
||||
% git config --get-all core.gitproxy |
||||
------------ |
||||
|
||||
If you like to live dangerous, you can replace *all* core.gitproxy by a |
||||
new one with |
||||
|
||||
------------ |
||||
% git config --replace-all core.gitproxy ssh |
||||
------------ |
||||
|
||||
However, if you really only want to replace the line for the default proxy, |
||||
i.e. the one without a "for ..." postfix, do something like this: |
||||
|
||||
------------ |
||||
% git config core.gitproxy ssh '! for ' |
||||
------------ |
||||
|
||||
To actually match only values with an exclamation mark, you have to |
||||
|
||||
------------ |
||||
% git config section.key value '[!]' |
||||
------------ |
||||
|
||||
To add a new proxy, without altering any of the existing ones, use |
||||
|
||||
------------ |
||||
% git config core.gitproxy '"proxy" for example.com' |
||||
------------ |
||||
|
||||
|
||||
include::config.txt[] |
||||
|
||||
|
||||
Author |
||||
------ |
||||
Written by Johannes Schindelin <Johannes.Schindelin@gmx.de> |
||||
|
||||
Documentation |
||||
-------------- |
||||
Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>. |
||||
|
||||
GIT |
||||
--- |
||||
Part of the gitlink:git[7] suite |
||||
|
Loading…
Reference in new issue