config

package
v2.6.2 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

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

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

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

func Bool(g *types.Cmd)

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

func BoolOrInt

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

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, value string) func(*types.Cmd)

Entry Adds a configuration entry.

func File

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

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

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

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

func GetColor

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

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

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

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

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

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

func List(g *types.Cmd)

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

func Local

func Local(g *types.Cmd)

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

func NameOnly

func NameOnly(g *types.Cmd)

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

func Null

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

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

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

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

func RenameSection

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

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

func ReplaceAll

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

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

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

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

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

func UnsetAll

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