返回顶部
本页目录

config

TIP

在使用git config时,您可能会遇到一些常见的问题和解决方案。一个常见的问题是设置了不正确的配置值,这可能会在使用git时导致错误。要解决此问题,可以使用git config --unset命令删除不正确的配置值。另一个常见问题是需要设置多个配置值。为此,可以使用git config --add命令将新值添加到现有配置中。最后,您可能需要更改特定远程存储库的配置值。为此,可以使用git config --remote命令指定要修改的远程存储库。

获取和设置版本库或全局选项

语法

                            
  • git config

实例

查看[当前仓库|global|系统]config

                            
  • git config [--local|--global|--system] --list

查看所有的配置以及它们所在的文件

                            
  • git config --list --show-origin

编辑配置文件

                            
  • git config -e [--global]

设置提交代码时的用户信息

                            
  • git config [--global] user.name "[name]"
  • git config [--global] user.email "[email address]"

使用VS Code的文本编辑器

                            
  • git config --global core.editor "code --wait"

使用vimdiff作为比较工具

                            
  • git config --global core.editor "code --wait"

打开所有的默认终端着色

                            
  • git config --global color.ui true

删除配置项section.key

                            
  • git config [--local|--global|--system] --unset section.key

获取所有可用配置变量的列表

                            
  • git help --config

选项

-l,--list

列出在配置文件中设置的所有变量,以及它们的值。

--global

对于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config ,如果该文件存在并且 ~/.gitconfig 文件不存在,则写入 $XDG_CONFIG_HOME/git/config 文件。

对于读取选项:仅从全局 ~/.gitconfig$XDG_CONFIG_HOME/git/config 读取,而不是从所有可用文件中读取。

--system

对于写选项:写到系统范围的 $(prefix)/etc/gitconfig 而不是存储库 .git/config

对于读取选项:仅从系统范围的 $(prefix)/etc/gitconfig 而不是所有可用文件中读取。

--local

对于写选项:写到仓库 .git/config 文件。这是默认行为。

对于读取选项:仅从存储库 .git/config 读取,而不从所有可用文件读取。

--unset

从配置文件中删除与密钥匹配的行。

--replace-all

默认行为是最多替换一行。这将替换与键(以及可选的 value-pattern )匹配的所有行。

--add

在选项中添加新行,而不更改任何现有值。这与在 --replace-all 中提供 ^$ 作为 value-pattern相同。

--get

获取一个给定键的值(可选择通过与该值匹配的regex进行过滤),如果没有找到键,则返回错误代码1,如果找到多个键,则返回最后一个值。如果没有找到键,返回错误代码1,如果找到多个键值,返回最后一个值。

--get-all

和get一样,但是返回一个多值键的所有值。

--get-regexp

--get-all 类似,但将名称解释为正则表达式,并写出键名。正则表达式匹配目前是区分大小写的,并且是针对规范化的键的版本进行的,其中章节和变量名称是小写的,但分节名称不是。

--get-urlmatch <名称> <URL>

当给定一个由两部分组成的名称 section.key 时,返回 section.<URL>.key 的值,其 <URL> 部分与给定的 URL 最匹配(如果不存在这样的键,则使用 section.key 的值作为后备)。当只给出部分作为名称时,对部分中的所有键都这样做并列出它们。如果未找到值,则返回错误代码 1。

--worktree

--local类似,除了 $GIT_DIR/config.worktree --local extensions.worktreeConfig 被启用则被读取或写入。如果不是,则与 --local 相同。请注意,对于主工作树, $GIT_DIR 等于 $GIT_COMMON_DIR ,但对于其他工作树,其格式 $GIT_DIR/worktrees/<id>/

-f <config-file>,--file <config-file>

对于写入选项:写入指定文件而不是存储库 .git/config

对于读取选项:只从指定的文件而不是从所有可用的文件中读取。

--blob <blob>

--file 相似,但是使用给定的blob而不是文件

--remove-section

从配置文件中删除给定的部分。

--rename-section

将给定的部分重新命名为一个新的名称。

--unset-all

删除配置文件中所有与密钥匹配的行。

--fixed-value

当与使用的 value-pattern 参数,治疗 value-pattern 为一精确字符串而不是正则表达式。这会将匹配的名称/值对限制为仅匹配值与 value-pattern 完全相等的名称/值对。

--type <type>

确保任何输入或输出在给定的类型约束下都是有效的,并将以 <type> 的规范形式规范输出值。

有效的 <type> 包括:

  • bool :将值规范化为 ‘true’ 或 ‘false’。
  • int :将值规范化为简单的十进制数字。输入 kmg 的可选后缀将使该值在输入时乘以1024、1048576或1073741824。
  • bool-or-int :如上所述,根据 boolint 规范化。
  • path :通过增加。规范化的领先~ 到价值 $HOME~user 的主目录为指定的用户。该说明符在设置值时无效(但是您可以从命令行使用 git config section.variable ~/ 让外壳程序进行扩展。)
  • expiry-date :通过将固定或相对日期字符串转换为时间戳来规范化。设置值时,该说明符无效。
  • color :获取值时,可通过转换为ANSI颜色转义序列进行规范化。设置值时,将执行完整性检查以确保给定值可以规范化为ANSI颜色,但按原样编写。
--bool,--int,--bool-or-int,--path,--expiry-date

选择类型说明符的历史选项。请改用 --type (请参见上文)。

--no-type

取消设置先前设置的类型说明符(如果先前已设置)。此选项要求 git config 不规范检索到的变量。没有 --type=<type>--<type> no --no-type 无效。

-z,--null

对于所有输出值和/或键的选项,总是以空字符(而不是换行)结束值。使用换行符作为键和值之间的分隔符。这样可以安全地解析输出,而不会被包含换行符的值所混淆。

--name-only

仅输出 --list--get-regexp 的配置变量的名称。

--show-origin

在所有被查询的配置选项的输出中增加起源类型(文件、标准输入、blob、命令行)和实际的起源(配置文件路径、ref或blob id(如果适用))。

--show-scope

--show-origin 类似,它使用该值的范围(工作树、本地、全局、系统、命令)扩充所有查询配置选项的输出。

--get-colorbool <名称> [<stdout-is-tty>]

找到 <name> 的颜色设置(例如 color.diff )并输出“true”或“false”。 <stdout-is-tty> 应该是“true”或“false”,并在配置显示“auto”时考虑在内。如果 <stdout-is-tty> 缺失,则检查命令本身的标准输出,如果要使用颜色则以状态 0 退出,否则以状态 1 退出。 name 的颜色设置未定义时,该命令使用 color.ui 作为后备。

--get-color <名称> [<默认值>]

找到为 name 配置的颜色(例如 color.diff.new ),并将其作为ANSI颜色转义序列输出到标准输出。如果没有为 name 配置颜色,则使用可选的 default 参数。

--type=color [--default=<default>] 优于 --get-color

-e,--edit

打开编辑器来修改指定的配置文件;无论是 --system--global ,或储存库(默认值)。

--[no-]includes

查找值时,请遵守配置文件中的 include.* 指令。

--default <value>

使用 --get 时,未找到请求的变量,其行为就像<value>是分配给该变量的值一样。