Documentation ¶
Overview ¶
Package config git-config - Get and set repository or global options.
SYNOPSIS ¶
Reference: https://git-scm.com/docs/git-config
git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]] git config [<file-option>] [type] --add name value git config [<file-option>] [type] --replace-all name value [value_regex] git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex] git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex] git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex] git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL git config [<file-option>] --unset name [value_regex] git config [<file-option>] --unset-all name [value_regex] git config [<file-option>] --rename-section old_name new_name git config [<file-option>] --remove-section name git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list git config [<file-option>] --get-color name [default] git config [<file-option>] --get-colorbool name [stdout-is-tty] git config [<file-option>] -e | --edit
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 also the section called “EXAMPLES”).
The type specifier can be either --int or --bool, to 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), or --path, which does some path expansion (see --path below). If no type specifier is passed, no checks or transformations are performed on the value.
When reading, the values are read from the system, global and repository local configuration files by default, and options --system, --global, --local and --file <filename> can be used to tell the command to read from only that location (see the section called “FILES”).
When writing, the new value is written to the repository local configuration file by default, and options --system, --global, --file <filename> can be used to tell the command to write to that location (you can say --local but that is the default).
This command will fail with non-zero status upon error. Some exit codes are:
- The section or key is invalid (ret=1), - no section or name was provided (ret=2), - the config file is invalid (ret=3), - the config file cannot be written (ret=4), - you try to unset an option which does not exist (ret=5), - you try to unset/set an option for which multiple lines match (ret=5), or - you try to use an invalid regexp (ret=6).
On success, the command returns the exit code 0.
Index ¶
- func Add(name, value string) func(*types.Cmd)
- func Blob(value string) func(*types.Cmd)
- func Bool(g *types.Cmd)
- func BoolOrInt(g *types.Cmd)
- func Edit(g *types.Cmd)
- func Entry(key string, value string) func(*types.Cmd)
- func File(configFile string) func(*types.Cmd)
- func Get(name, valueRegex string) func(*types.Cmd)
- func GetAll(name, valueRegex string) func(*types.Cmd)
- func GetColor(name, defaultValue string) func(*types.Cmd)
- func GetColorBool(name string, stdoutIsTTY bool) func(*types.Cmd)
- func GetRegexp(nameRegexp, valueRegex string) func(*types.Cmd)
- func GetURLMatch(name, url string) func(*types.Cmd)
- func Global(g *types.Cmd)
- func Int(g *types.Cmd)
- func List(g *types.Cmd)
- func Local(g *types.Cmd)
- func NameOnly(g *types.Cmd)
- func Null(g *types.Cmd)
- func Path(g *types.Cmd)
- func RemoveSection(name string) func(*types.Cmd)
- func RenameSection(oldName, newName string) func(*types.Cmd)
- func ReplaceAll(name, value, valueRegex string) func(*types.Cmd)
- func ShowOrigin(g *types.Cmd)
- func System(g *types.Cmd)
- func Unset(name, valueRegex string) func(*types.Cmd)
- func UnsetAll(name, valueRegex string) func(*types.Cmd)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Add ¶ added in v0.13.0
Add Adds a new line to the option without altering any existing values. This is the same as providing ^$ as the value_regex in --replace-all. --add
func Blob ¶ added in v0.13.0
Blob Similar to --file but use the given blob instead of a file. E.g. you can use master:.gitmodules to read values from the file .gitmodules in the master branch. See 'SPECIFYING REVISIONS' section in gitrevisions(7) for a more complete list of ways to spell blob names. --blob <blob>
func Bool ¶ added in v0.13.0
Bool git config will ensure that the output is 'true' or 'false' --bool
func BoolOrInt ¶ added in v0.13.0
BoolOrInt git config will ensure that the output matches the format of either --bool or --int, as described above. --bool-or-int
func Edit ¶ added in v0.13.0
Edit Opens an editor to modify the specified config file; either --system, --global, or repository (default). -e, --edit
func File ¶ added in v0.13.0
File Use the given config file instead of the one specified by GIT_CONFIG. -f <config-file>, --file <config-file>
func Get ¶ added in v0.13.0
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 the last value if multiple key values were found. --get
func GetAll ¶ added in v0.13.0
GetAll Like get, but returns all values for a multi-valued key. --get-all
func GetColor ¶ added in v0.13.0
GetColor Find the color configured for name (e.g. color.diff.new) and output it as the ANSI color escape sequence to the standard output. The optional default parameter is used instead, if there is no color configured for name. --get-color name [default]
func GetColorBool ¶ added in v0.13.0
GetColorBool Find the color setting for name (e.g. color.diff) and output "true" or "false". stdout-is-tty should be either "true" or "false", and is taken into account when configuration says "auto". If stdout-is-tty is missing, then checks the standard output of the command itself, and exits with status 0 if color is to be used, or exits with status 1 otherwise. When the color setting for name is undefined, the command uses color.ui as fallback. --get-colorbool name [stdout-is-tty]
func GetRegexp ¶ added in v0.13.0
GetRegexp Like --get-all, but interprets the name as a regular expression and writes out the key names. Regular expression matching is currently case-sensitive and done against a canonicalized version of the key in which section and variable names are lowercased, but subsection names are not. --get-regexp
func GetURLMatch ¶ added in v0.13.0
GetURLMatch When given a two-part name section.key, the value for section.<url>.key whose <url> part matches the best to the given URL is returned (if no such key exists, the value for section.key is used as a fallback). When given just the section as name, do so for all the keys in the section and list them. Returns error code 1 if no value is found. --get-urlmatch name URL
func Global ¶ added in v0.13.0
Global For writing options: write to global ~/.gitconfig file rather than the repository .git/config, write to $XDG_CONFIG_HOME/git/config file if this file exists and the ~/.gitconfig file doesn’t. --global
func Int ¶ added in v0.13.0
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. --int
func List ¶ added in v0.13.0
List List all variables set in config file, along with their values. -l, --list
func Local ¶ added in v0.13.0
Local For writing options: write to the repository .git/config file. This is the default behavior. --local
func NameOnly ¶ added in v0.13.0
NameOnly Output only the names of config variables for --list or --get-regexp. --name-only
func Null ¶ added in v0.13.0
Null For all options that output values and/or keys, always end values with the null character (instead of a newline). Use newline instead as a delimiter between key and value. This allows for secure parsing of the output without getting confused e.g. by values that contain line breaks. -z, --null
func Path ¶ added in v0.13.0
Path git-config will expand leading ~ to the value of $HOME, and ~user to the home directory for the specified user. This option has no effect when setting the value (but you can use git config bla ~/ from the command line to let your shell do the expansion). --path
func RemoveSection ¶ added in v0.13.0
RemoveSection Remove the given section from the configuration file. --remove-section
func RenameSection ¶ added in v0.13.0
RenameSection Rename the given section to a new name. --rename-section
func ReplaceAll ¶ added in v0.13.0
ReplaceAll Default behavior is to replace at most one line. This replaces all lines matching the key (and optionally the value_regex). --replace-all
func ShowOrigin ¶ added in v0.13.0
ShowOrigin Augment the output of all queried config options with the origin type (file, standard input, blob, command line) and the actual origin (config file path, ref, or blob id if applicable). --show-origin
func System ¶ added in v0.13.0
System For writing options: write to system-wide $(prefix)/etc/gitconfig rather than the repository .git/config. --system
Types ¶
This section is empty.