config

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2020 License: Apache-2.0 Imports: 2 Imported by: 4

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add added in v0.13.0

func Add(name, value string) func(*types.Cmd)

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

func Blob(value string) func(*types.Cmd)

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

func Bool(g *types.Cmd)

Bool git config will ensure that the output is 'true' or 'false' --bool

func BoolOrInt added in v0.13.0

func BoolOrInt(g *types.Cmd)

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

func Edit(g *types.Cmd)

Edit Opens an editor to modify the specified config file; either --system, --global, or repository (default). -e, --edit

func Entry

func Entry(key string, value string) func(*types.Cmd)

Entry Adds a configuration entry.

func File added in v0.13.0

func File(configFile string) func(*types.Cmd)

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

func Get(name, valueRegex string) func(*types.Cmd)

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

func GetAll(name, valueRegex string) func(*types.Cmd)

GetAll Like get, but returns all values for a multi-valued key. --get-all

func GetColor added in v0.13.0

func GetColor(name, defaultValue string) func(*types.Cmd)

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

func GetColorBool(name string, stdoutIsTTY bool) func(*types.Cmd)

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

func GetRegexp(nameRegexp, valueRegex string) func(*types.Cmd)

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

func GetURLMatch(name, url string) func(*types.Cmd)

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

func Global(g *types.Cmd)

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

func Int(g *types.Cmd)

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

func List(g *types.Cmd)

List List all variables set in config file, along with their values. -l, --list

func Local added in v0.13.0

func Local(g *types.Cmd)

Local For writing options: write to the repository .git/config file. This is the default behavior. --local

func NameOnly added in v0.13.0

func NameOnly(g *types.Cmd)

NameOnly Output only the names of config variables for --list or --get-regexp. --name-only

func Null added in v0.13.0

func Null(g *types.Cmd)

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

func Path(g *types.Cmd)

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

func RemoveSection(name string) func(*types.Cmd)

RemoveSection Remove the given section from the configuration file. --remove-section

func RenameSection added in v0.13.0

func RenameSection(oldName, newName string) func(*types.Cmd)

RenameSection Rename the given section to a new name. --rename-section

func ReplaceAll added in v0.13.0

func ReplaceAll(name, value, valueRegex string) func(*types.Cmd)

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

func ShowOrigin(g *types.Cmd)

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

func System(g *types.Cmd)

System For writing options: write to system-wide $(prefix)/etc/gitconfig rather than the repository .git/config. --system

func Unset added in v0.13.0

func Unset(name, valueRegex string) func(*types.Cmd)

Unset Remove the line matching the key from config file. --unset

func UnsetAll added in v0.13.0

func UnsetAll(name, valueRegex string) func(*types.Cmd)

UnsetAll Remove all lines matching the key from config file. --unset-all

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL