ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git-config Manual Page(机翻版)

2021-11-03 19:05:15  阅读:203  来源: 互联网

标签:选项 git true Manual 默认 Git 设置 config


Git-config手册页

名称

git-config-获取并设置存储库或全局选项

SYNOPSIS

Git config[-type=][-fixed-value][-show-resource][-name-gz]value[-show-scope][-show-value[value-pattern]][-type=]-fplace-all name value[]git-pattern[][-type=][-style=][-fixed-value][-pattern]][-value-orn][-resource-null][-show-value][-shot-ship-shot-null][-value][-value][-shot][-resourt][-name-name-resourt][-name-name-resourt-name-name-name-resourt [-fixed-value]-unset-all name[value-pattern]git config[]-rename-section old_name namegit config[]-remove-section namegit config[][-show-origit][-scope][-z|-null][-name-only]-l|-listgit config[]-get-color name[default]git config[]-get-color name[stdout-is-tty]git]

描述

您可以使用此命令查询/设置/替换/取消设置选项。名称实际上是由点分隔的节和键,并且值将被转义。

可以使用-add选项将多行添加到选项中。如果您想更新或取消设置一个可以在多行上出现的选项,则需要给出一个值模式(这是一个扩展的正则表达式,除非给出了-fixed-value选项)。只有与模式匹配的现有值才被更新或取消设置。如果要处理与模式不匹配的行,只需在前面加上一个感叹号(也请参见示例),但请注意,这只在不使用-fixed-value选项时才有效。

-type=选项指示git config确保传入值和传出值在给定的条件下是可规范化的。如果没有给出-type=,则不执行规范化。调用方可以用-no-type取消现有的-type说明符。

读取时,默认情况下从系统、全局和存储库本地配置文件读取值,并且可以使用选项-system、-全局、-local、-worktree和-file来告诉命令只从该位置读取(参见图)。

在写入时,默认情况下将新值写入存储库本地配置文件,并且可以使用选项-system、-global、-worktree、-file来通知命令写入该位置(可以说-local,但这是默认值)。

错误时,此命令将以非零状态失败。一些退出代码为:

段或密钥无效(ret=1),

没有提供区段或名称(ret=2),

配置文件无效(ret=3),

无法写入配置文件(ret=4),

您尝试取消设置不存在的选项(ret=5),

尝试取消/设置多行匹配的选项(ret=5),或

您尝试使用无效的regexp(ret=6)。

成功后,命令返回退出代码0。

选项

-全部更换

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

--add

在不更改任何现有值的情况下向选项添加新行。这与在-replace-all中提供^$作为值模式相同。

--get

获取给定键的值(可选地通过与该值匹配的正则表达式进行过滤)。如果找不到键,返回错误代码1,如果找到多个键值,返回最后一个值。

--全身而退

与get类似,但返回多值键的所有值。

--get-regexp

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

-get-urlmatch name URL

当给定由两部分组成的名称section.key时,返回其部分与给定URL最匹配的section.key的值(如果不存在此类键,section.key的值将用作回退)。当只将节指定为名称时,对节中的所有键执行此操作并将其列出。如果未找到值,则返回错误代码1。

--global

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

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

另见文件。

--system

对于写入选项:写入系统范围的$(前缀)/etc/gitconfig,而不是repository.git/config。

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

另见文件。

--local

对于写入选项:写入repository.git/config文件。这是默认行为。

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

另见文件。

--worktree

类似于-local,除了.git/config.worktree是在extensions.worktreeConfig存在的情况下读取或写入的。如果不是,也是-本地的。

-f配置文件

-file config-file

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

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

另见文件。

--blob blob

类似于-file,但使用给定的blob而不是文件。例如,您可以使用master:.gitmodules从master分支中的文件.gitmodules读取值。请参阅gitreviews(7)中的“指定修订”部分,以获得更完整的拼写blob名称的方法列表。

-拆卸部分

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

-重命名段

将给定节重命名为新名称。

--unset

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

-未设置-全部

从配置文件中删除与键匹配的所有行。

-1

--list

列出配置文件中设置的所有变量及其值。

-固定值

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

-型

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

有效的包括:

布尔:将值规范化为“true”或“false”。

int:将值规范化为简单的十进制数。k、m或g的可选后缀将在输入时使该值乘以1024、1048576或1073741824。

bool-or-int:按照bool或int的标准进行规范化,如上所述。

Path:通过向$HOME的值添加引导~和向指定用户的主目录添加~user来实现规范化。这个说明符在设置值时没有作用(但是您可以使用命令行中的git config section.variable~/让shell进行扩展)。

过期日期:通过将固定或相对日期字符串转换为时间戳来规范化。此说明符在设置值时不起作用。

颜色:获取值时,通过转换为ANSI颜色转义序列来规范化。在设置一个值时,会执行一个健全性检查,以确保给定的值可以被规范化为ANSI颜色,但它是按原样写入的。

--bool

--int

-bool-or-int

--path

-到期日

选择类型说明符的历史选项。首选替代型(见上文)。

-无类型

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

-z

--null

对于输出值和/或键的所有选项,始终使用空字符(而不是换行符)结束值。使用换行符代替键和值之间的分隔符。这允许安全地解析输出,而不会被例如包含换行符的值所混淆。

--仅限姓名

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

--显示-来源

使用原始类型(文件、标准输入、blob、命令行)和实际原始类型(config文件路径、ref或blob id(如果适用))来增强所有查询的配置选项的输出。

-显示范围

与-show-original类似,它使用该值的作用域(local、global、system、command)扩展了所有查询的配置选项的输出。

-get-colorbool name[stdout-is-tty]

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

--get-color name[默认]

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

-type=color[-default=]优于-get-color(但请注意-get-color将省略-type=color打印的尾随换行符)。

-E

--edit

打开编辑器以修改指定的配置文件;可以是-system、-global或存储库(默认)。

-[no-]包括

在查找值时,请注意配置文件中包含.*指令。当给定特定文件(例如,使用-file、-global等)时,默认关闭;当搜索所有配置文件时,默认关闭。

--default

当使用-get时,如果没有找到所请求的变量,则表现得好像是分配给该变量的值。

配置

只有在列出配置时,即使用-list或可能返回多个结果的-get-*中的任何一个时,才会考虑page.config。默认情况是使用寻呼机。

文件

如果没有用-file显式设置,git config将在四个文件中搜索配置选项:

$(前缀)/etc/gitconfig

系统范围配置文件。

$XDG_CONFIG_HOME/git/config

第二用户特定配置文件。如果$XDG_CONFIG_HOME未设置或为空,则将使用$HOME/.config/git/config。这个文件中的任何单值变量集都将被~/.gitconfig中的任何变量覆盖。如果您有时使用旧版本的Git,最好不要创建这个文件,因为对这个文件的支持是最近才添加的。

~/.gitconfig

用户特定配置文件。也称为“全局”配置文件。

$GIT_DIR/config

存储库特定配置文件。

$GIT_DIR/config.worktree

这是可选的,只有当扩展名.worktreeConfig出现在$GIT_DIR/config中时才会进行搜索。

如果没有提供进一步的选项,则所有读取选项将读取所有可用的这些文件。如果全局配置文件或系统范围配置文件不可用,则将忽略它们。如果存储库配置文件不可用或不可读,git config将以非零错误代码退出。然而,在这两种情况下都不会发出错误消息。

按照上面给出的顺序读取文件,最后找到的值优先于先前读取的值。当采用多个值时,将使用来自所有文件的键的所有值。

在运行任何git命令时,可以使用-c选项重写各个配置参数。详见git(1)。

所有写入选项将默认写入存储库特定的配置文件。注意,这也会影响-replace-all和-unset等选项。git config每次只更改一个文件。

您可以使用-global、-system、-local、-worktree和-file命令行选项重写这些规则;请参阅上面的选项。

环境

Git_CONFIG_GLOBAL

Git_CONFIG_SYSTEM

从给定文件中获取配置,而不是从全局或系统级配置中获取配置。详见git(1)。

git_CONFIG_nosystem

是否跳过从系统范围的$(前缀)/etc/gitconfig文件中读取设置。详见git(1)。

另见文件。

Git_CONFIG_COUNT

git_CONFIG_KEY_

git_CONFIG_VALUE_

如果GIT_CONFIG_COUNT被设置为正数,则该数的所有环境对GIT_CONFIG_KEY_和GIT_CONFIG_VALUE_up将被添加到进程的运行时配置中。配置对是零索引的。任何丢失的键或值都被视为错误。空GIT_CONFIG_COUNT被处理为与GIT_CONFIG_COUNT=0相同,即不处理对。这些环境变量将覆盖配置文件中的值,但将被通过git-c传递的任何显式选项覆盖。

这对于您希望使用公共配置生成多个git命令但不能依赖于配置文件的情况非常有用,例如在编写脚本时。

git_CONFIG

如果git config提供了no-file选项,则使用GIT_CONFIG提供的文件,就好像它是通过-file提供的一样。这个变量对其他Git命令没有影响,主要是为了实现历史兼容性;通常没有理由使用它来代替-file选项。

举例

给定这样的.git/config:

#

#这是配置文件,并且

#a'#'或';'字符表示

#A评论

#

核心变量

【核心】

;不信任文件模式

FileMode=false

;我们的diff算法

[diff]

external=/usr/local/bin/diff-wrapper

重命名=true

代理设置

【核心】

gitproxy=proxy-command for kernel.org

gitproxy=default-proxy;对于所有其他部分

;HTTP

[HTTP]

sslVerify

[HTTP“https://weak.example.com”]

sslVerify=false

cookieFile = /tmp/cookie.txt

可以将FileMode设置为真

% git config core.filemode true

假设的代理命令条目实际上有一个后缀来识别它们应用到的URL。下面介绍如何将kernel.org的条目更改为“ssh”。

%git config core.gitproxy'“ssh”for kernel.org'''for kernel.org$'

这确保只替换kernel.org的键/值对。

若要删除重命名项,请执行

% git config --unset diff.renames

如果要删除Multivar的条目(如上面的core.gitproxy),则必须提供与一行的值正好匹配的regex。

若要查询给定键的值,请执行

% git config --get core.filemode

或者

% git config core.filemode

或者,查询Multivar:

% git config --get core.gitproxy "for kernel.org$"

如果您想知道Multivar的所有值,请执行:

% git config --get-all core.gitproxy

如果你喜欢危险地生活,你可以用一个新的

% git config --replace-all core.gitproxy ssh

但是,如果您真的只想替换默认代理的行,即没有“for”后缀的行,请执行如下操作:

% git config core.gitproxy ssh '!用于'

要真正地仅匹配具有感叹号的值,您必须

%git config section.key值'[!]'

若要添加新的代理,而不更改任何现有的代理,请使用

% git config --add core.gitproxy '"proxy-command" for example.com'

使用脚本中配置的自定义颜色的示例:

#!/bin/sh

WS=$(git config-get-color color.diff.whitspace“blue reverse”)

reset=$(git config-get-color“”“reset”)

回显“${WS}您的空白颜色或蓝色反转${RESET}”

对于https://weak.example.com中的URL,http.sslVerify被设置为false,而对于其他所有URL都被设置为true:

% git config --type=bool --get-urlmatch http.sslverify https://good.example.com

是的

% git config --type=bool --get-urlmatch http.sslverify https://weak.example.com

错误

% git config --get-urlmatch http https://weak.example.com

http.cookieFile /tmp/cookie.txt

http.sslverify false

配置文件

Git配置文件包含许多影响Git命令行为的变量。每个存储库中的文件.git/config和可选的config.worktree(参见git-worktree(1)的“配置文件”部分)用于存储该存储库的配置,$HOME/.gitconfig用于将每个用户的配置存储为.git/config文件的回退值。文件/etc/gitconfig可用于存储系统范围的默认配置。

配置变量由Git管道和瓷器使用。变量被划分为节,其中变量本身的完全限定的变量名是最后一个点分隔的段,节名是最后一个点之前的所有内容。变量名不区分大小写,只允许字母数字字符和-,并且必须以字母字符开头。有些变量可能出现多次,我们就说这个变量是多值的。

语法

语法是相当灵活和允许的;空格大部分被忽略。字符#和;从注释开始到行尾,空行将被忽略。

该文件由节和变量组成。节以方括号中的节名开始,并一直持续到下一节开始。节名不区分大小写。在节名中只允许使用字母数字字符-和.每个变量必须属于某个节,这意味着在变量的第一次设置之前必须有一个节标头。

节可以进一步划分为小节。为了开始一个小节,在小节标题中将其名称用双引号(由空格与小节名称隔开)放入小节标题中,如下例所示:

[章节“小节”]

子节名称区分大小写,可以包含除换行符和空字节之外的任何字符。Doublequote“和反斜杠可以通过将它们分别转义为\”和\\ 来包括。读取时删除其他字符之前的反斜杠;例如,\ t被读取为t,\ 0被读取为0。节标头不能跨越多行。变量可以直接属于一个部分或给定的部分。如果你有[部分“小节”],你可以有[部分],但你不需要。

还有一个不推荐的[section.subsection]语法。使用这种语法,子节名称被转换为小写,并且也被敏感地比较大小写。这些子段名称遵循与节段名称相同的限制。

所有其他行(以及节标题后面行的剩余部分)都被识别为设置变量,形式为name=value(或者只是name,这是一个简写,表示变量是布尔值“true”)。变量名不区分大小写,只允许字母数字字符和-,并且必须以字母字符开头。

定义值的行可以继续到下一行,以\ 结尾;反斜杠和行尾被剥离。name=之后的前导空格、第一个注释字符#or;之后行的剩余空格以及行的尾随空格将被丢弃,除非它们用双引号括起来。值内的内部空白被逐字保留。

在双引号中,双引号"和反斜杠\ 字符必须转义:使用\"for"和\\ for\。

可识别下列转义序列(在\"和\\ 旁边):\ n表示换行符(NL),\ t表示水平制表(HT,TAB),\ b表示退格(BS).其他char转义序列(包括八进制转义序列)无效。

包括

include和includeIf部分允许您包括来自另一个源的配置指令。这些节的行为彼此相同,除了includeIf节如果其条件计算值不为true时可能会被忽略之外;参见下面的“Conditional include”。

通过设置特殊的include.path(或includeIf),可以从另一个配置文件中包含配置文件。*.path)变量到要包含的文件的名称。变量采用路径名作为其值,并受倾斜展开的约束。可以多次给出这些变量。

所包含文件的内容会立即插入,就好像它们是在include指令的位置找到的一样。如果变量的值是相对路径,则路径被认为是相对于其中找到include指令的配置文件。示例见下面。

有条件的包括

通过将includeIf.path变量设置为要包含的文件的名称,可以有条件地包含来自另一个配置文件的配置文件。

条件以关键字和冒号和一些数据开始,这些数据的格式和含义取决于关键字。支持的关键字有:

gitdir

关键字gitdir:之后的数据用作glob模式。如果.git目录的位置与模式匹配,则满足包含条件。

git位置可以是自动发现的,也可以来自$GIT_DIR环境变量。如果通过.git文件(例如从子模块或链接的工作树)自动发现存储库,则.git位置将是.git目录所在的最终位置,而不是.git文件所在的位置。

模式可以包含标准的全局通配符和两个额外的通配符**/和/**,它们可以匹配多个路径组件。详见gittignore(5)。为方便起见:

如果模式以~/开头,则~将被环境变量HOME的内容替换。

如果模式以./开头,它将被包含当前配置文件的目录替换。

如果模式没有以~/、./或/开头,则会自动添加**/。例如,模式foo/bar变为**/foo/bar,并将匹配/any/path/to/foo/bar。

如果图案以/结尾,则自动添加**。例如,模式foo/变为foo/**。换句话说,它递归地匹配“foo”和内部的所有内容。

gitdir/i

这与gitdir相同,只是匹配是不区分大小写的(例如,在不区分大小写的文件系统上)

在分行

关键字onbranch:之后的数据被视为具有标准全局通配符和两个额外通配符**/和/**的模式,这些通配符可以匹配多个路径组件。如果在工作树中,当前签出的分支的名称与模式匹配,则满足包含条件。

如果图案以/结尾,则自动添加**。例如,模式foo/变为foo/**。换句话说,它匹配以foo/开头的所有分支。如果分支是按层次结构组织的,并且希望将配置应用于该层次结构中的所有分支,则这一点非常有用。

关于通过gitdir和gitdir/i匹配的更多说明:

$GIT_DIR中的符号链接在匹配之前不会解析。

symlink和realpath版本的路径将在$GIT_DIR之外匹配。例如,如果~/git是到/mnt/storage/git的符号链接,则gitdir:~/git和gitdir:/mnt/storage/git都将匹配。

在v2.13.0中这个特性的初始版本中,情况并非如此,它只匹配realpath版本。想要与此功能的初始版本兼容的配置需要只指定realpath版本,或者同时指定两个版本。

请注意,“./”不是特殊的,而且字面上会匹配,这不太可能是您想要的。

举例

核心变量

【核心】

;不信任文件模式

FileMode=false

我们的diff算法

[diff]

external=/usr/local/bin/diff-wrapper

重命名=true

[分行“开发”]

远程=原产地

合并=refs/heads/devel

#代理设置

【核心】

gitProxy=“ssh”for“kernel.org”

gitProxy=default-proxy;用于其余部分

【包括】

path=/path/to/foo.inc;按绝对路径包含

path=foo.inc;查找与当前文件相关的“foo.inc”

path=~/foo.inc;在'$HOME'目录中查找“foo.inc”

;如果$GIT_DIR是/path/to/foo/.git,则包括在内

[包括“gitdir:/path/to/foo/.git”]

path=/path/to/foo.inc

包括/path/to/group内的所有存储库

[包括“gitdir:/path/to/group/”]

path=/path/to/foo.inc

;包括$HOME/to/group内的所有存储库

[包括“gitdir:~/to/group/”]

path=/path/to/foo.inc

相对路径总是相对于包含

文件(如果条件为真);它们的位置不是

受情况的影响

[包括“gitdir:/path/to/group/”]

path = foo.inc

;仅当我们位于foo-branch所在的工作树中时才包括

;目前已退房

[包括“onbranch:foo-branch”]

path = foo.inc

价值

许多变量的值被视为一个简单的字符串,但也有一些变量采用特定类型的值,并且有关于如何拼写它们的规则。

布尔值

当一个变量被称为取布尔值时,许多同义词被接受为true和false;这些都不区分大小写。

是的

布尔真文字是yes、on、true和1。此外,不带=定义的变量被取为真。

错误

布尔伪文字有no、off、false、0和空字符串。

当使用-type=bool类型说明符将值转换为其规范形式时,git config将确保输出为“true”或“false”(以小写拼写)。

整数

指定各种大小的许多变量的值可以用k、M、...后缀表示“按1024缩放数字”、“按1024x1024缩放数字”等。

颜色

接受颜色的变量的值是由空格分隔的颜色(最多两个,一个用于前景,一个用于背景)和属性(任意多)组成的列表。

接受的基本颜色是正常、黑色、红色、绿色、黄色、蓝色、品红色、青色和白色。给出的第一种颜色是前景,第二种颜色是背景。除了普通颜色外,所有的基本颜色都有一个明亮的变体,可以通过在颜色前面加上明亮的前缀来指定,比如明亮的红色。

颜色也可以以0到255之间的数字给出;这些颜色使用ANSI 256颜色模式(但请注意,并非所有终端都支持此模式)。如果您的终端支持它,您也可以指定24位RGB值为十六进制,如#ff0ab3。

可接受的属性是粗体、dim、ul、blinking、reverse、斜体和strike(对于划线或“strikethrough”字母)。任何属性相对于颜色的位置(之前、之后或之间)都无关紧要。可以通过以no或no-(例如,nowreverse、no-UL等)为前缀来关闭特定属性。

空颜色字符串根本不产生颜色效果。这可用于避免对特定元素着色而不完全禁用颜色。

对于git的预定义颜色槽,属性将在彩色输出中的每个项的开始处重置。因此,将color.decorate.branch设置为黑色将该分支名称绘制成纯黑色,即使相同输出行上的前一件事情(例如,日志装饰输出中的分支名称列表之前的开括号)被设置为用粗体或其他属性绘制。然而,自定义日志格式可能会进行更复杂和分层的着色,并且否定的表单可能在那里很有用。

路径名

接受路径名值的变量可以被赋予以“~/”或“~user/”开头的字符串,并且通常的倾斜展开发生在这样的字符串上:~/扩展到$HOME的值,~user/扩展到指定用户的主目录。

变量

请注意,此列表不全面,不一定完整。对于特定于命令的变量,您将在相应的手册页中找到更详细的描述。

其他git相关的工具可能也确实使用自己的变量。在创建新变量供您自己的工具使用时,请确保它们的名称不会与Git本身和其他流行工具使用的名称冲突,并在文档中对它们进行描述。

建议。*

这些变量控制为帮助新用户而设计的各种可选帮助消息。所有advice.*变量默认为true,您可以通过将这些变量设置为false来告知Git您不需要帮助:

fetchShowForcedUpdates

当git-fetch(1)花很长时间计算ref更新后的强制更新或警告检查已禁用时显示的通知。

pushUpdateRejected

Set this variable to false if you want to disable pushNonFFCurrent, pushNonFFMatching, pushAlreadyExists, pushFetchFirst, pushNeedsForce, and pushRefNeedsUpdate simultaneously.

pushNonFFCurrent

当git-push(1)由于对当前分行的非快进更新而失败时显示的通知。

pushNonFFMatching

当您运行git-push(1)并显式推送匹配的refs时(即您使用:或指定不是当前分支的refspec),会显示建议,并导致非快进错误。

pushAlreadyExists

当git-push(1)拒绝不符合快速转发条件的更新(例如,标签)时示出。

pushFetchFirst

当git-push(1)拒绝试图覆盖指向我们没有的对象的远程引用的更新时显示。

pushNeedsForce

当git-push(1)拒绝更新时显示,该更新试图覆盖指向非提交对象的远程引用,或者使远程引用指向非提交对象。

pushUnqualifiedRefname

当git-push(1)放弃尝试根据源和目标来猜测源属于哪个远程ref命名空间,但我们仍然可以建议用户根据源对象的类型推送到refs/heads/*或refs/tags/*。

pushRefNeedsUpdate

当一个分支的远程跟踪ref有我们本地没有的更新时,git-push(1)拒绝强制更新。

statusAheadBehind

当git-status(1)计算本地ref与其远程跟踪ref的超前/滞后计数时显示,并且该计算花费的时间比预期的要长。如果status.aheadBehind为false或给出了-no-ahead-behind选项,则不会出现。

statusHints

在git-status(1)的输出中、在git-commit(1)中写入提交消息时显示的模板中以及在切换分支时显示的git-switch(1)或git-checkout(1)中显示的帮助消息中显示如何从当前状态开始的方向。

statusUoption

当命令花费超过2秒来枚举未跟踪的文件时,建议考虑使用git-status(1)的-u选项。

commitBeforeMerge

当git-merge(1)拒绝合并以避免覆盖本地更改时显示的通知。

resetQuiet

建议在重置后命令花费超过2秒来枚举未分阶段更改时,考虑使用-quiet选项git-reset(1)。

resolveConflict

当冲突阻止操作执行时,由各种命令显示的建议。

sequencerInUse

当定序器命令已经在进行中时显示建议。

implicitIdentity

关于如何在从系统用户名和域名猜测信息时设置标识配置的建议。

detachedHead

当您使用git-switch(1)或git-checkout(1)移动到分离HEAD状态时显示的建议,以指示如何在事件发生后创建本地分支。

checkoutAmbiguousRemoteBranchName

当git-checkout(1)和git-switch(1)的参数模棱两可地解析为多个远程设备上的远程跟踪分支时,如果没有模棱两可的参数会导致远程跟踪分支被签出,则会显示建议。请参阅checkout.defaultRemote配置变量,了解如何在打印此通知的某些情况下将给定的远程设置为默认使用。

amWorkDir

当git-am(1)无法应用补丁文件时,显示补丁文件位置的通知。

rmHints

在git-rm(1)的输出出现故障的情况下,显示如何从当前状态继续的方向。

addEmbeddedRepo

当你意外地将一个git repo添加到另一个git repo中时,如何做的建议。

ignoredHook

如果由于钩子未设置为可执行而忽略钩子,则显示建议。

waitingForEditor

每当Git等待来自用户的编辑器输入时,向终端打印消息。

nestedTag

如果用户尝试递归地标记标记标记对象,则显示建议。

submoduleAlternateErrorStrategyDie

当配置为“死亡”的子模块.alterateErrorStrategy选项导致致命错误时显示建议。

addIgnoredFile

如果用户试图将忽略的文件添加到索引中,则会显示建议。

addEmptyPathspec

如果用户运行add命令而不提供pathspec参数,则显示建议。

updateSparsePath

当git-add(1)或git-rm(1)被要求更新当前稀疏签出之外的索引条目时显示的建议。

core.fileMode

告诉Git是否要尊重工作树中文件的可执行位。

当标记为可执行的文件签出时,某些文件系统会丢失可执行位,或者签出带有可执行位的非可执行文件。git-clone(1)或git-init(1)探测文件系统,看看它是否正确处理可执行位,并且这个变量会根据需要自动设置。

然而,存储库可以位于正确处理FileMode的文件系统上,并且在创建时将该变量设置为true,但是稍后可以从丢失FileMode的另一个环境访问(例如,通过CIFS挂载导出ext4,使用Git for Windows或Eclipse访问Cygwin创建的存储库)。在这种情况下,可能需要将该变量设置为false。参见git-update-index(1)。

默认值为true(当配置文件中未指定core.filemode时)。

core.hideDotFiles

(windows-only)如果为真,则将新创建的目录和名称以点开头的文件标记为隐藏。如果dotGitOnly,则只有.git/目录被隐藏,而没有其他以点开头的文件。默认模式为dotGitOnly。

core.ignoreCase

内部变量,它支持各种变通方法,使Git能够在不区分大小写的文件系统上更好地工作,如APF、HFS+、FAT、NTFS等。例如,如果目录列表在Git期望“Makefile”时找到“makefile”,Git将假设它实际上是同一个文件,并继续将其记住为“Makefile”。

默认值为false,除非git-clone(1)或git-init(1)将在创建存储库时适当地探测并设置core.ignoreCase true。

Git依赖于为您的操作和文件系统正确配置这个变量。修改此值可能导致意外行为。

core.precomposeUnicode

此选项仅用于Git的Mac OS实现。当core.precompose Unicode=true时,Git将恢复Mac OS对文件名的unicode分解。这在Mac OS和Linux或Windows之间共享存储库时非常有用。(需要Windows 1.7.10或更高版本的Git,或Cygwin 1.7下的Git)。如果为false,则Git将完全透明地处理文件名,这与旧版本的Git向后兼容。

core.protectHFS

如果设置为true,则不允许在HFS+文件系统上签出与.git等价的路径。Mac OS上默认为true,其他地方默认为false。

core.protectNTFS

如果设置为true,则不允许签出可能导致NTFS文件系统出现问题的路径,例如与8.3“短”名称冲突。Windows上默认为true,其他地方默认为false。

core.fsmonitor

如果设置,此变量包含“fsmonitor”hook命令的路径名。

此hook命令用于标识自请求的日期/时间以来可能已更改的所有文件。此信息用于通过避免对未更改的文件进行不必要的扫描来加速git。

参见githooks(5)的“fsmonitor-watman”部分。

注:如果启用了(实验性的)内置文件系统监视器,则忽略此配置设置的值(请参见core.useBuiltinFSMonitor)。

core.fsmonitorHookVersion

设置调用“fsmonitor”钩子时使用的协议版本。

目前有版本1和版本2。当未设置此选项时,将首先尝试版本2,如果失败,则将尝试版本1。版本1使用时间戳作为输入,以确定自那时以来哪些文件发生了更改,但一些监视器(如Watchman)在与时间戳一起使用时具有竞争条件。版本2使用了一个不透明的字符串,这样监视器就可以返回一些可以用来确定哪些文件在没有竞争条件的情况下发生了更改的内容。

注:如果启用了内置文件系统监视器,则忽略此配置设置的值(请参见core.useBuiltinFSMonitor)。

core.useBuiltinFSMonitor

(实验性的)如果设置为true,则为该工作目录启用内置的文件系统监视器守护进程(git-fsmonitor-daemon(1))。

与基于钩子的文件系统监视器一样,内置的文件系统监视器可以加快Git命令的速度,这些命令需要刷新具有许多文件的工作目录中的Git索引(例如git状态)。内置监视器消除了安装和维护外部第三方工具的需要。

内置文件系统监视器目前仅在有限的一组受支持的平台上可用。目前,这包括Windows和MacOS。

注意:如果将此配置设置设置为true,则忽略core.fsmonitor和core.fsmonitorHookVersion的值。

core.trustctime

如果为false,则忽略索引和工作树之间的ctime差异;当索引节点更改时间被Git(文件系统爬行器和一些备份系统)之外的东西定期修改时,这很有用。参见git-update-index(1)。默认为真。

core.splitIndex

如果为真,则将使用索引的拆分索引特性。参见git-update-index(1)。默认为假。

core.untrackedCache

确定如何处理索引的未跟踪缓存特性。如果此变量未设置或设置为保留,则将保留该变量。如果设置为true,它将自动添加。如果设置为false,它将被自动删除。在将其设置为true之前,您应该检查mtime是否在您的系统上正常工作。请参见git-update-index(1)。默认情况下保留,除非启用了feature.manyFiles,默认情况下将此设置设置设置为true。

core.checkStat

当缺少或设置为默认值时,会检查stat结构中的许多字段,以检测文件是否在Git查看之后被修改过。当此配置变量设置为最小值时,mtime和ctime的次秒部分、文件所有者的uid和gid、索引节点号(以及设备号,如果Git被编译为使用它)将从这些字段中的检查中排除,只留下mtime的整个秒部分(以及ctime,如果设置了core.trust ctime)和文件大小。

Git的一些实现不会在某些字段(例如JGit)中留下可用值;通过将这些字段排除在比较之外,当这些其他系统同时使用相同的存储库时,最小模式可能有助于互操作性。

core.quotePath

输出路径(例如ls-file、diff)的命令将在路径名中引用“异常”字符,方法是用双引号括起路径名,并用反斜杠转义这些字符,就像C转义控制字符(例如,TAB的\ t,LF的\ n,反斜杠的\\)或值大于0x80的字节(例如UTF-8中的“micro”的八进制\ 302\ 265)。如果此变量设置为false,则高于0x80的字节不再被视为“异常”。无论该变量的设置如何,双引号、反斜杠和控制字符都会转义。简单的空格字符不被认为是“不寻常的”。许多命令可以使用-z选项完全逐字输出路径名。默认值为true。

core.eol

为标记为文本的文件设置工作目录中使用的行结束类型(通过设置文本属性,或者通过设置文本=auto和Git自动检测内容为文本)。另一种选择是lf、crlf和native,它们使用平台的本机行结尾。默认值为本机值。有关行尾转换的更多信息,请参见gitattributes(5)。注意,如果core.autocrlf设置为true或input,则忽略该值。

core.safecrlf

如果为真,则使Git检查当线尾转换激活时转换CRLF是否可逆。Git将验证命令是否直接或间接地修改工作树中的文件。例如,提交一个文件,然后签出同一个文件,应该在工作树中生成原始文件。如果core.autocrlf的当前设置不是这样,Git将拒绝该文件。变量可以设置为“警告”,在这种情况下,Git只会警告不可逆转换,但会继续操作。

CRLF转换有轻微的数据损坏的可能性。当它被启用时,Git将在提交期间将CRLF转换为LF,在签出期间将LF转换为CRLF。在提交之前包含LF和CRLF混合的文件不能由Git重新创建。对于文本文件,这是正确的做法:它纠正行结尾,使得存储库中只有LF行结尾。但对于意外分类为文本的二进制文件,转换可能会损坏数据。

如果您及早发现这种损坏,您可以通过在.gitattribute中显式设置转换类型来轻松地修复它。提交后,您的工作树中仍然有原始文件,并且该文件尚未损坏。您可以显式地告诉Git这个文件是二进制的,Git将适当地处理这个文件。

不幸的是,无法区分使用混合行结尾清理文本文件的期望效果和损坏二进制文件的不期望效果。在这两种情况下,CRLF都以不可逆的方式去除。对于文本文件,这是正确的做法,因为CRLF是行尾,而对于二进制文件,转换CRLF会损坏数据。

注意,此安全检查并不意味着签出将为core.eol和core.autocrlf的不同设置生成与原始文件相同的文件,但仅为当前文件生成。例如,带有LF的文本文件将通过core.eol=lf被接受,然后可以通过core.eol=crlf签出,在这种情况下,结果文件将包含CRLF,尽管原始文件包含LF。然而,在两个工作树中,线结尾将是一致的,即全部LF或全部CRLF,但从不混合。core.safecrlf机制将报告具有混合行结尾的文件。

core.autocrlf

将此变量设置为“true”与将所有文件的text属性设置为“auto”和将core.eol设置为“crlf”相同。如果您希望工作目录中有CRLF行结尾,并且存储库有LF行结尾,则设置为true。该变量可以被设置为输入,在这种情况下不执行输出转换。

core.checkRoundtripEncoding

用逗号和/或空格分隔的编码列表,Git执行UTF-8往返检查它们是否用于工作树编码属性(参见gitattributes(5))。默认值为SHIFT-JIS。

core.symlinks

如果为false,符号链接将作为包含链接文本的小纯文件签出。git-update-index(1)和git-add(1)不会将记录的类型更改为常规文件。对于不支持符号链接的FAT这样的文件系统很有用。

默认值为true,除非git-clone(1)或git-init(1)将在创建存储库时适当地探测并设置core.symlinks false。

core.gitProxy

当使用Git协议进行获取时,执行一个“代理命令”(作为命令主机端口),而不是建立到远程服务器的直接连接。如果变量值为“COMMAND for DOMAIN”格式,则该命令仅应用于以指定域字符串结尾的主机名。这个变量可以设置多次,并按照给定的顺序匹配;第一个匹配项获胜。

可以由GIT_PROXY_COMMAND环境变量覆盖(它总是通用的,没有特殊的“for”处理)。

特殊字符串none可以用作代理命令,以指定给定域模式不使用代理。这对于将防火墙内的服务器排除在代理使用之外非常有用,同时默认为外部域的公共代理。

core.sshCommand

如果设置了这个变量,那么当git fetch和git push需要连接到远程系统时,它们将使用指定的命令而不是ssh。该命令与GIT_SSH_COMMAND环境变量的格式相同,并且在设置环境变量时被重写。

core.ignoreStat

如果为true,Git将避免使用lstat()调用来检测文件是否发生了更改,方法是为那些在索引和工作树中更新相同的跟踪文件设置“假定不变”位。

当文件在Git之外被修改时,用户将需要显式地分阶段修改后的文件(例如,参见git-update-index(1)中的示例部分)。Git通常不会检测到这些文件的更改。

这在lstat()调用非常慢的系统(如CIFS/Microsoft Windows)上非常有用。

默认为假。

core.preferSymlinkRefs

代替HEAD和其他符号参考文件的默认“symref”格式,使用符号链接。对于期望HEAD是符号链接的旧脚本,有时需要这样做。

core.alternateRefsCommand

当从备用服务器通告可用历史提示时,使用shell来执行指定的命令,而不是git-for-each-ref(1)。第一个参数是备用参数的绝对路径。输出必须每行包含一个十六进制对象id(即,与git for-each-ref-format='%(ObjectName)'生成的对象id相同)。

注意,通常不能将git for-each-ref直接放入config值中,因为它不采用存储库路径作为参数(但可以将上面的命令包装在shell脚本中)。

core.alternateRefsPrefixes

当列出备选引用时,只列出以给定前缀开头的引用。前缀匹配,就好像它们是作为git-for-each-ref(1)的参数给出的一样。要列出多个前缀,请用空格分隔它们。If core.alternateRefsCommand is set, setting core.alternateRefsPrefixes has no effect.

core.bare

如果为真,则假定该存储库是空的,并且没有与其相关联的工作目录。如果是这种情况,则将禁用许多需要工作目录的命令,例如git-add(1)或git-merge(1)。

在创建存储库时,git-clone(1)或git-init(1)会自动猜测此设置。默认情况下,以“/.git”结尾的存储库不为空(bare=false),而所有其他存储库均为空(bare=true)。

core.worktree

设置工作树根的路径。如果设置了GIT_COMOON_DIR环境变量,则忽略core.worktree,并且不用于确定工作树的根。这可以被GIT_WORK_TREE环境变量和-work-tree命令行选项覆盖。该值可以是绝对路径,也可以是相对于.git目录路径的值,该目录可以由-git-dir或GIT_DIR指定,也可以是自动发现的。如果指定了-git-dir或GIT_DIR,但没有指定-work-tree、GIT_WORK_TREE和core.work tree,则当前工作目录被视为工作树的顶层。

请注意,即使在一个目录的“.git”子目录中的配置文件中设置了这个变量,并且它的值与后一个目录不同(例如“/path/to/.git/config”将core.worktree设置为“/different/path”),这很可能是一个错误的配置。在“/path/to”目录中运行Git命令仍然会使用“/different/path”作为工作树的根,并且可能会导致混淆,除非您知道自己在做什么(例如,您正在为与存储库的通常工作树不同的位置创建相同索引的只读快照)。

core.logAllRefUpdates

启用重选。通过附加新的和旧的SHA-1、日期/时间和更新原因,但仅当文件存在时,才将对引用的更新记录到文件“$GIT_DIR/logs/”中。如果此配置变量设置为true,则会自动为分行主管(即refs/heads/)、远程refs(即refs/remotes/)、note refs(即refs/notes/)和符号ref HEAD创建丢失的“$GIT_DIR/logs/”文件。如果将其设置为始终,则会自动为refs/下任何引用创建丢失reflog。

这些信息可以用来确定“2天前”分支的提示是什么提交。

在与之关联的工作目录的存储库中,默认情况下该值为true,在裸存储库中默认情况下为false。

core.repositoryFormatVersion

标识存储库格式和布局版本的内部变量。

core.sharedRepository

当组(或true)时,存储库可以在组中的多个用户之间共享(确保所有文件和对象都是组可写的)。当全部(或全部或全部)时,存储库将可被所有用户读取,此外还可进行组共享。当umask(或false)时,Git将使用umask(2)报告的权限。当0xxx(其中0xxx是八进制数)时,存储库中的文件将具有该模式值。0xxx将覆盖用户的umask值(而其他选项将仅覆盖用户的umask值的请求部分)。举例:0660将使得回购对于所有者和组是可读/可写的,但是对于其他人是不可访问的(等同于组,除非umask是例如。0022)。0640是组可读但组不可写的储存库。见git-init(1)。默认为假。

core.warnAmbiguousRefs

如果为true,Git将警告您,如果您传递它的引用名称不明确,并且可能匹配存储库中的多个引用。默认为真。

core.compression

整数-1.9,表示默认压缩级别。-1是zlib默认值。0表示没有压缩,1..9是各种速度/大小的权衡,9是最慢的。如果设置,这将为其他压缩变量提供默认值,如core.looseCompression和pack.compression。

core.looseCompression

整数-1.9,表示不在包文件中的对象的压缩级别。-1是zlib默认值。0表示没有压缩,1..9是各种速度/大小的权衡,9是最慢的。如果未设置,则默认为core.compression。如果未设置,则默认为1(最佳速度)。

core.packedGitWindowSize

在单个映射操作中要映射到内存的包文件的字节数。更大的窗口大小可以让您的系统更快地处理数量更少的大包文件。由于增加了对操作系统内存管理器的调用,较小的窗口大小将对性能产生负面影响,但当访问大量的大型包文件时,可能会提高性能。

如果在编译时设置NO_MMAP,则默认为1 MiB,否则32位平台上设置32 MiB,64位平台上设置1 GIB。这对于所有用户/操作系统都是合理的。您可能不需要调整这个值。

支持k、m或g的公共单元后缀。

core.packedGitLimit

从包文件同时映射到内存的最大字节数。如果Git需要一次访问超过这个数量的字节来完成一个操作,它将取消映射现有区域以回收进程中的虚拟地址空间。

在32位平台上默认为256 MiB,在64位平台上默认为32 TiB(实际上是无限的)。这对于所有用户/操作系统都是合理的,除了最大的项目。您可能不需要调整这个值。

支持k、m或g的公共单元后缀。

core.deltaBaseCacheLimit

每个线程为缓存可能被多个分层对象引用的基本对象保留的最大字节数。通过将整个解压缩的基本对象存储在缓存中,Git能够避免多次解包和解压缩频繁使用的基本对象。

所有平台上的默认值为96 MiB。这对于所有用户/操作系统都是合理的,除了最大的项目。您可能不需要调整这个值。

支持k、m或g的公共单元后缀。

core.bigFileThreshold

大于此大小的文件将被缩小存储,而不尝试delta压缩。在没有增量压缩的情况下存储大文件可以避免过度的内存使用,而只需稍微牺牲磁盘使用的增加。此外,大于此大小的文件始终被视为二进制文件。

所有平台上的默认值为512 MIB。对于大多数项目来说,这应该是合理的,因为源代码和其他文本文件仍然可以被delta压缩,但更大的二进制媒体文件将不会。

支持k、m或g的公共单元后缀。

core.excludesFile

指定文件的路径名,该文件包含用于描述不打算跟踪的路径的模式,以及.gitignore(per-directory)和.git/info/exclude。默认为$XDG_CONFIG_HOME/git/忽略。如果$XDG_CONFIG_HOME未设置或为空,则使用$HOME/.config/git/忽略。见gittignore(5)。

core.askPass

一些交互请求密码的命令(例如svn和http接口)可以被告知使用通过该变量的值给出的外部程序。可以由GIT_ASKPASS环境变量覆盖。如果未设置,则返回到SSH_ASKPASS环境变量的值,否则将出现简单的密码提示。应给外部程序一个适当的提示作为命令行参数,并在其STDOUT上写入密码。

core.attributesFile

除了.gitattributes(每个目录)和.git/info/attributes之外,Git还在这个文件中查找属性(参见gitattributes(5))。路径扩展的方式与core.excludesFile相同。它的默认值是$XDG_CONFIG_HOME/git/attributes。如果$XDG_CONFIG_HOME未设置或为空,则使用$HOME/.config/git/attributes。

core.hooksPath

默认情况下,Git将在$GIT_DIR/hooks目录中查找钩子。将其设置为不同的路径,例如/etc/git/hooks,Git将尝试在该目录中找到钩子,例如/etc/git/hooks/pre-receive,而不是在$GIT_DIR/hooks/pre-receive中找到钩子。

路径可以是绝对的也可以是相对的。相对路径被视为相对于运行钩子的目录(见githooks(5)的“描述”部分)。

这个配置变量在您希望集中配置Git钩子而不是在每个存储库的基础上配置它们的情况下非常有用,或者作为使用init.templateDir(您更改了默认钩子)的更灵活、更集中的替代方案,这个配置变量非常有用。

core.editor

commit和tag等命令允许您通过启动编辑器来编辑消息,这些命令在设置该变量时使用该变量的值,而环境变量GIT_EDITOR没有设置。见git-var(1)。

core.commentChar

允许您编辑消息的命令(如commit和tag)考虑以该字符注释开头的一行,并在编辑器返回(默认#)后将其删除。

如果设置为“auto”,git-commit将选择一个字符,该字符不是现有提交消息中任何行的开始字符。

core.filesRefLockTimeout

试图锁定单个引用时重试的时间长度(毫秒)。值0表示根本不重试;-1表示无限期地尝试。默认值为100(即,重试100ms)。

core.packedRefsTimeout

试图锁定packed-refs文件时重试的时间长度(毫秒)。值0表示根本不重试;-1表示无限期地尝试。默认值为1000(即重试1秒)。

core.pager

Git命令使用的文本查看器(例如,更少)。该值是指由shell解释的。优先顺序是$GIT_PAGER环境变量,然后是core.pager配置,然后是$PAGER,然后是编译时选择的默认值(通常更少)。

当LESS环境变量未被设置时,Git将其设置为FRX(如果LESS环境变量被设置,则Git根本不改变它)。如果您想有选择地覆盖Git的LESS默认设置,您可以将core.pager设置为例如less-S。这将通过Git传递给shell,Git将最终命令转换为LESS=FRX less-S。环境不设置S选项,但命令行设置S选项,指示less截断长行。类似地,将core.pager设置为less-+F将禁用环境从命令行指定的F选项,从而禁用less的“如果一个屏幕就退出”行为。可以专门为特定命令激活一些标志:例如,将page.fault设置为less-S只允许git fault的行截断。

同样,当LV环境变量未设置时,Git将其设置为-c。您可以通过用另一个值导出LV或将core.pager设置为lv+c来覆盖此设置。

core.whitespace

要注意的常见空白问题的逗号分隔列表。git diff将使用color.diff.whitspace来突出显示它们,git apply--whitspace=error将它们视为错误。您可以使用前缀-禁用它们中的任何一个(例如-trailing-space):

blank-at-eol将行末尾的尾随空格视为错误(默认情况下启用)。

space-before-tab将行的初始缩进部分中紧接在制表符前面出现的空格字符视为错误(默认情况下启用)。

带非制表符的缩进将用空格字符而不是等效制表符缩进的行视为错误(默认情况下不启用)。

Tab-in-indent将行的初始缩进部分中的制表符视为错误(默认情况下不启用)。

blank-at-eof将在文件末尾添加的空行视为错误(默认情况下启用)。

拖尾空间是涵盖eol时的空白和eof时的空白的简写。

Cr-at-eol将行结尾处的回车符视为行终止符的一部分,也就是说,如果回车符之前的字符不是空白(默认情况下不启用),则尾随空格不会触发。

tabwidth=表示选项卡占用的字符位置;这与带non选项卡的缩进和Git何时修复选项卡中缩进错误有关。默认选项卡宽度为8。允许值为1到63。

core.fsyncObjectFiles

此布尔将在写入对象文件时启用fsync()。

这完全浪费了对数据写入进行正确排序的文件系统的时间和精力,但对于不使用日志记录的文件系统(传统的UNIX文件系统)或只使用日志元数据而不使用文件内容的文件系统(os x的HFS+,或带有“data=writeback”的Linux ex3)来说可能很有用。

core.preloadIndex

为git diff等操作启用并行索引预加载

这可以加快像git diff和git status这样的操作,尤其是在像NFS这样的文件系统上,这些文件系统具有弱的缓存语义,因此IO延迟相对较高。启用后,Git将并行地对文件系统数据进行索引比较,从而允许重叠IO。默认为true。

core.fscache

为某些操作启用文件系统数据的额外缓存。

Git for Windows使用它来大容量读取和缓存整个目录的lstat数据(而不是逐个文件地执行lstat)。

core.longpaths

启用Git for Windows中内置命令的长路径(>260)支持。默认情况下,这是禁用的,因为Windows Explorer、cmd.exe和Git for Windows工具链(MSYS、bash、tcl、perl..)不支持长路径。只有当你知道自己在做什么,并准备好接受一些怪癖时,才启用此功能。

core.unsetenvvars

windows-only:以逗号分隔的环境变量名称列表,在生成任何其他进程之前需要取消设置这些名称。默认为PERL5LIB,以说明Git for Windows坚持使用自己的Perl解释器这一事实。

core.restrictinheritedhandles

仅Windows:重写派生进程是否只继承标准文件句柄(stdin、stdout和stderr)或所有句柄。可以是自动的,真的或假的。默认为auto,这意味着在Windows 7和更高版本上为true,在较旧的Windows版本上为false。

core.createObject

您可以将其设置为链接,在这种情况下,使用硬链接和源删除来确保对象创建不会覆盖现有对象。

在某些文件系统/操作系统组合上,这是不可靠的。将此配置设置设置设置为重命名;但是,这将删除确保现有对象文件不会被覆盖的检查。

core.notesRef

当显示提交消息时,还会显示存储在给定引用中的注释。裁判必须是完全合格的。如果给定的参考不存在,则这不是错误,而是意味着不应打印注释。

此设置默认为“refs/notes/commits”,并且可以由GIT_NOTES_REF环境变量覆盖。见git-notes(1)。

core.commitGraph

如果为真,那么git将读取commit-graph文件(如果存在)以解析commit的图结构。默认为true。更多信息请参见git-commit-graph(1)。

core.useReplaceRefs

如果设置为false,则表现为命令行上给出了-no-replace-objects选项。更多信息请参见git(1)和git-replace(1)。

core.multiPackIndex

使用多包索引文件来跟踪使用单个索引的多个包文件。更多信息请参见git-multi-pack-index(1)。默认为true。

core.sparseCheckout

启用“稀疏签出”功能。更多信息请参见git-sparse-checkout(1)。

core.sparseCheckoutCone

启用稀疏签出功能的“锥形模式”。当稀疏签出文件包含有限的模式集时,此模式将提供显著的性能优势。更多信息请参见git-sparse-checkout(1)。

core.abbrev

设置对象名称缩写为。如果未指定或设置为“auto”,则根据存储库中打包对象的近似数量来计算适当的值,希望这足以使缩写的对象名称在一段时间内保持唯一。如果设置为“no”,则不进行缩写,对象名称以其全长显示。最小长度为4。

add.ignoreErrors

Add.ignore-error(不推荐)

当由于索引错误而无法添加某些文件时,通知git add继续添加文件。等效于git-add(1)的-忽略-error选项。不推荐使用add.忽略-error,因为它不遵循配置变量的通常命名约定。

add.interactive.useBuiltin

[实验性]设置为true,以使用交互式版本git-add(1)的实验性内置实现,而不是Perl脚本版本。默认情况下为假。

别名*

git(1)命令包装器的命令别名-例如,在定义了alias.last=cat-file commit HEAD之后,调用git last相当于git cat-file commit HEAD。为了避免脚本使用的混乱和麻烦,忽略隐藏现有Git命令的别名。参数被空格分割,支持通常的shell引用和转义。可以使用引号对或反斜杠来引用它们。

注意,别名的第一个字不一定必须是命令。它可以是一个命令行选项,将被传递到git的调用中。特别是,当与-c一起使用以传递一次性配置或与-p一起使用以强制分页时,这一点非常有用。例如,loud-rebase=-c commit.verbose=true rebase可以定义为运行git loud-rebase相当于git-c commit.verbose=true rebase。此外,ps=-p status也是一个有用的别名,因为git ps会在原始命令没有的地方分页git status的输出。

如果别名扩展的前缀是感叹号,它将被视为shell命令。例如,定义alias.new=!gitk-all-not ORIG_HEAD,调用git new相当于运行shell命令gitk-all-not ORIG_HEAD。注意,shell命令将从存储库的顶层目录执行,而顶层目录可能不一定是当前目录。Git_PREFIX设置为从原始当前目录运行git rev-parse-show-prefix返回的值。参见git-rev-parse(1)。

am.keepcr

如果为真,git-am将使用参数-keep-cr为mbox格式的补丁调用git-mailsplit。在这种情况下,git-mailsplit不会从以\ r\ n结尾的行中删除\ r。可以通过从命令行中给出-no-keep-cr来重写。参见git-am(1),git-mailsplit(1)。

am.threeWay

默认情况下,如果补丁应用不干净,git am将失败。当设置为true时,这个设置告诉git am如果补丁记录了它应该应用的blob的标识,并且我们在本地有这些blob可用(相当于从命令行提供-3way选项),就返回到3路合并。默认为false。见git-am(1)。

apply.ignoreWhitespace

当设置为更改时,告诉git apply忽略空白中的更改,方法与-忽略-space-change选项相同。当设置为:否、无、从不、false时,告诉git应用于尊重所有空白差异。见git-apply(1)。

apply.whitespace

告诉git apply如何处理空白,方法与-whitspace选项相同。见git-apply(1)。

blame.blankBoundary

在git-fault(1)中显示边界提交的空白提交对象名称。此选项默认为false。

blame.coloring

这决定了要应用于非输出的着色方案。它可以是重复的行,高亮最近,或没有,这是默认。

blame.date

指定用于在git-fault(1)中输出日期的格式。如果未设置,则使用iso格式。有关受支持的值,请参阅git-log(1)中对-date选项的讨论。

blame.showEmail

在git-fault(1)中显示作者电子邮件而不是作者姓名。此选项默认为false。

blame.showRoot

不要将root提交视为git-fault(1)中的边界。此选项默认为false。

blame.ignoreRevsFile

忽略文件中列出的修订,每行一个未缩写的对象名称,在git-fault(1)中。以#开头的空白和注释将被忽略。此选项可重复多次。空文件名将重置忽略的修订列表。这个选项将在命令行选项-忽略-revs-file之前处理。

blame.markUnblamableLines

在git-fault(1)的输出中用*标记被忽略的修订所更改的行,我们不能将该修订归因于另一个提交。

blame.markIgnoredLines

标记被忽略的修订所更改的行,我们将该修订归因于使用?在git-fault的输出中(1)。

branch.autoSetupMerge

告诉git branch、git switch和git checkout设置新的分支,以便git-pull(1)将适当地从起始点分支合并。注意,即使没有设置此选项,也可以使用-track和-no-track选项为每个分支选择此行为。有效的设置是:false-不进行自动设置;true-当起始点是远程跟踪分支时进行自动设置;当起始点是本地分支或远程跟踪分支时,始终进行自动设置。此选项默认为true。

branch.autoSetupRebase

当使用跟踪另一个分支的git分支、git开关或git签出创建新分支时,这个变量告诉Git设置pull to rebase而不是merge(参见“branch.rebase”)。当从不时,rebase永远不会自动设置为true。当本地时,对于其他本地分支的跟踪分支,rebase设置为true。当远程时,对于远程跟踪分支的被跟踪分支,rebase被设置为true。当总是时,对于所有跟踪分支,rebase将被设置为true。有关如何设置分支以跟踪另一个分支的详细信息,请参阅“branch.autoSetupMerge”。此选项默认为从不。

branch.sort

当git-branch(1)显示时,该变量控制分支的排序顺序。如果没有提供“-sort=”选项,这个变量的值将被用作默认值。有关有效值,请参见git-for-each-ref(1)字段名。

分行.远程

在分支上时,它告诉git fetch和git push从/push到哪个遥控器。要推送到的远程可能会被remote.pushDefault(对于所有分支)覆盖。对于当前分支,要推送到的远程可能会被分支进一步覆盖。pushRemote。如果没有配置远程,或者您不在任何分支上,则默认为用于获取的原点和用于推送的remote.pushDefault。另外,.(句点)是当前的本地存储库(点存储库),参见branch.merge的最后注释。

分行。推送远程

当在分支上时,它覆盖分支.远程进行推送。它还覆盖remote.pushDefault以从分支推送。当您从一个位置(例如您的上游)拉出并推送到另一个位置(例如您自己的发布存储库)时,您将需要设置remote.pushDefault来指定所有分支要推送到的远程,并使用此选项来覆盖特定分支的远程。

分行.合并

与分支.远程一起定义给定分支的上游分支。它告诉git fetch/git pull/git rebase要合并哪个分支,还可以影响git push(参见push.default)。在分支中时,它告诉git fetch将在FETCH_HEAD中标记为要合并的默认refspec。该值的处理方式类似于refspec的远程部分,并且必须匹配由“branch.remote”给出的从远程获取的ref。git pull(首先调用git fetch)使用合并信息来查找合并的默认分支。如果没有这个选项,git将拉出默认值来合并第一个获取的refspec。指定多个值以获得八达通合并。如果您希望设置git pull,以便将其从本地存储库中的另一个分支合并到其中,您可以将分支.合并到所需的分支,并对分支.远程使用相对路径设置.(句点)。

分行&合并期权

设置合并到分支的默认选项。语法和支持的选项与git-merge(1)的语法和选项相同,但当前不支持包含空格字符的选项值。

分行.重定基数

当为真时,将分支重新建立在提取的分支的顶部,而不是在运行“git pull”时从默认远程合并默认分支。参见“pull.rebase”以非特定于分支的方式执行此操作。

当合并(或仅为m)时,将-rebase-merges选项传递给git rebase,以便将本地合并提交包含在rebase中(详见git-rebase(1)))。

当preserve(或仅p)时,也可以将-preserve-merges传递给git rebase,这样本地提交的合并提交不会因运行git pull而变平。

当值是交互式的(或仅为i)时,rebase将以交互式模式运行。

注意:这可能是一个危险的操作;除非您理解其含义,否则不要使用它(详见git-rebase(1))。

分行。描述

分支描述,可以用git branch-edit-description编辑。机构描述自动以补丁面函或请求拉式摘要的格式添加。

浏览器.cmd

指定调用指定浏览器的命令。指定的命令在shell中计算,URL作为参数传递。(见git-web-browse(1))。

浏览器.路径

覆盖可能用于浏览HTML帮助(参见git-help(1)中的-w选项)或gitweb中的工作存储库(参见git-instaweb(1))的给定工具的路径。

checkout.defaultRemote

当您运行git checkout或git switch并且只有一个遥控器时,它可能隐式地退回到check out和跟踪,例如原点/。只要有一个以上的远程引用,它就会立即停止工作。此设置允许设置首选遥控器的名称,当涉及到消歧时,该名称应始终获胜。典型的用例是将其设置为原点。

当前,git-switch(1)和git-checkout(1)在git checkout或git switch将签出另一个远程节点上的分支时使用此功能,当git工作树add引用远程分支时,git-worktree(1)使用此功能。此设置将来可能用于其他类似签出的命令或功能。

checkout.guess

在git checkout和git switch中提供-guy或-no-guy选项的默认值。参见git-switch(1)和git-checkout(1)。

checkout.workers

更新工作树时要使用的并行工作器的数量。默认为1,即顺序执行。如果设置为小于1的值,则Git将使用与可用逻辑核的数量一样多的工作者。此设置和checkout.thresholdForparalelism影响所有执行checkout的命令。例如签出、克隆、重置、稀疏签出等。

注意:并行签出通常为位于SSD或NFS上的存储库提供更好的性能。对于旋转磁盘和/或具有少量内核的机器上的存储库,默认的顺序签出通常执行得更好。存储库的大小和压缩级别也可能影响并行版本的性能。

checkout.thresholdForParallelism

当使用少量文件运行并行签出时,子进程派生和进程间通信的成本可能超过并行化的收益。此设置允许定义应尝试并行签出的文件的最小数量。默认为100。

clean.requireForce

使git-clean不做任何事情的布尔值,除非给定-f、-i或-n。默认为true。

clone.defaultRemoteName

克隆存储库时要创建的远程设备的名称。默认值为original,可以通过将-original命令行选项传递给git-clone(1)来重写。

clone.rejectShallow

如果存储库是浅存储库,则拒绝克隆它,可以通过在命令行中传递选项-reject-shallow来覆盖它。见git-clone(1)

color.advice

在提示中启用/禁用颜色的布尔值(例如,当推送失败时,请参阅建议。*以获取列表)。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当错误输出到达终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.advice.hint

使用自定义颜色作为提示。

color.blame.highlightRecent

这可以用于根据线的年龄对自责线的元数据着色。

此设置应设置为以逗号分隔的颜色和日期设置列表,以颜色开始和结束,日期应设置为从最旧到最新。如果行是在给定的时间戳之前引入的,那么元数据将在给定的颜色下着色,从而覆盖旧的时间戳颜色。

代替绝对时间戳,相对时间戳也起作用,例如,2周.ago对于处理超过2周的任何内容都是有效的。

它默认为蓝色、12个月前、白色、1个月前、红色,这些颜色将所有超过一年的东西都染成蓝色,一个月到一年前的最近变化保持白色,最后一个月内引入的线条被染成红色。

color.blame.repeatedLines

对于git-fault输出中每一行重复的元信息(如提交id、作者名称、日期和时区)使用自定义颜色。默认为青色。

color.branch

在git-branch(1)的输出中启用/禁用颜色的布尔值。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当输出到终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.branch.

使用自定义颜色进行分支着色。是当前(当前分支)、本地(本地分支)、远程(remote/remotes/中的远程跟踪分支)、上游(上游跟踪分支)、普通(其他refs)之一。

color.diff

是否使用ANSI转义序列为补丁添加颜色。如果将其设置为始终,则git-diff(1)、git-log(1)和git-show(1)将对所有补丁使用颜色。如果设置为true或auto,则这些命令将仅在输出到终端时使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

这不会影响git-format-patch(1)或git-diff-*管道命令。可以使用-color[=]选项在命令行上重写。

color.diff.

使用自定义颜色进行不同的着色。输入的句子至少有一个单词超过100个字符,请检查输入。

color.decorate.

为git日志装饰输出使用自定义颜色。是分支、remoteBranch、tag、stash或HEAD中的一个,分别用于本地分支、远程跟踪分支、tag、stash和HEAD,并用于移植提交。

color.grep

当设置为始终时,始终突出显示匹配项。当错误(或从未)时,绝不。当设置为true或auto时,仅当输出写入终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.grep.

使用自定义颜色进行grep着色。指定要使用指定颜色的行的哪一部分,并且是

背景

上下文行中的不匹配文本(使用-A、-B或-C时)

filename

文件名前缀(不使用-h时)

功能

函数名行(使用-p时)

lineNumber

行号前缀(使用-n时)

列号前缀(使用-column时)

匹配

匹配文本(与设置matchContext和matchSelected相同)

匹配上下文

匹配上下文行中的文本

matchSelected

匹配选定行中的文本

选定

选定行中的不匹配文本

分离器

行(:,-,和=)上字段之间和大块(-)之间的分隔符

color.interactive

当设置为始终时,始终使用颜色作为交互式提示和显示(如“git-add-interactive”和“git-clean-interactive”使用的颜色)。当错误(或从未)时,绝不。当设置为true或auto时,仅当输出到终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.interactive.

使用自定义颜色进行git添加交互和git干净交互输出。对于交互命令的四种不同类型的正常输出,可以是提示、标题、帮助或错误。

color.pager

一个布尔值,用于指定自动颜色模式是否应该对传呼机的输出进行着色。默认值为true;如果您的寻呼机不理解ANSI颜色代码,则将其设置为false。

color.push

在推送错误中启用/禁用颜色的布尔值。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当错误输出到达终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.push.error

对于推送错误使用自定义颜色。

color.remote

如果设置,则会突出显示行开始处的关键字。关键字是“错误”、“警告”、“提示”和“成功”,并且不区分大小写地匹配。可以设置为总是、假(或从不)或自动(或真)。如果未设置,则使用color.ui的值(默认为自动)。

color.remote.

为每个远程关键字使用自定义颜色。可以是与相应关键字匹配的提示、警告、成功或错误。

color.showBranch

在git-show-branch(1)的输出中启用/禁用颜色的布尔值。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当输出到终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.status

在git-status(1)的输出中启用/禁用颜色的布尔值。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当输出到终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.status.

使用自定义颜色进行状态着色。是标题(状态消息的标题文本)、添加或更新(添加但未提交的文件)、更改(更改但未添加到索引中的文件)、未跟踪(Git未跟踪的文件)、分行(当前分行)、nobbranch(未显示分行警告的颜色,默认为红色)、localBranch或remote Branch(当分行和跟踪信息以状态短格式显示时,分别为本地和远程分行名称)或未合并(未合并的文件)之一。

color.transport

当拒绝推送时启用/禁用颜色的布尔值。可以设置为总是、假(或从不)或自动(或真),在这种情况下,仅当错误输出到达终端时才使用颜色。如果未设置,则使用color.ui的值(默认为自动)。

color.transport.rejected

在拒绝推送时使用自定义颜色。

color.ui

这个变量决定了诸如color.diff和color.grep等变量的默认值,这些变量控制每个命令系列的颜色使用。随着更多命令学习配置以设置-color选项的默认值,它的范围将扩大。如果您希望Git命令不使用color,除非使用其他配置或-color选项显式启用,否则将其设置为false或从不设置。如果您希望所有不用于机器消耗的输出都使用颜色,则将其设置为始终,如果您希望这样的输出在写入终端时使用颜色,则设置为true或auto(这是自Git 1.8.4以来的默认输出)。

column.ui

指定受支持的命令是否应在列中输出。此变量由用空格或逗号分隔的标记列表组成:

这些选项控制何时应启用该功能(默认情况下永远不启用):

一直都是

总是以列显示

从来没有

从不在列中显示

自动

如果输出是到终端,则在列中显示

这些选项控制布局(默认为列)。设置这些选项中的任何一个都意味着始终没有指定始终、从不或自动。

在行之前填充列

在列之前填充行

很简单

显示在一列中

最后,这些选项可以与布局选项组合(默认为nodense):

密集

创建大小不相等的列以利用更多的空间

不密集

制作大小相等的列

column.branch

指定是否输出列中git分支中的分支列表。详见column.ui。

column.clean

指定git clean-i中列出项目时的布局,该项目总是以列显示文件和目录。详见column.ui。

column.status

指定是否在列中以git状态输出未跟踪的文件。详见column.ui。

column.tag

指定是否在列中的git标记中输出标记列表。详见column.ui。

commit.cleanup

此设置覆盖git commit中-cleanup选项的默认值。详见git-commit(1)。当您总是希望在日志消息中保留以注释字符#开头的行时,更改默认值是很有用的,在这种情况下,您可以自己执行git config commit.cleanup空格(注意,如果您这样做,您将不得不删除以提交日志模板中的#开头的帮助行)。

commit.gpgSign

布尔值,用于指定是否所有提交都应该是GPG签名的。在执行rebase等操作时使用此选项可能会导致大量提交被签名。使用代理可以方便地避免多次键入GPG密码短语。

commit.status

当使用编辑器准备提交消息时,启用/禁用提交消息模板中状态信息的包含的布尔值。默认为true。

commit.template

指定要用作新提交消息模板的文件的路径名。

commit.verbose

布尔值或int值,用于指定带有git commit的冗长级别。参见git-commit(1)。

commitGraph.generationVersion

指定在写入或读取提交图文件时使用的生成编号版本的类型。如果指定了版本1,则将不会写入或读取校正后的提交日期。默认为2。

commitGraph.maxNewFilters

指定git commit-graph write(c.f.,git-commit-graph(1))的-max-new-filters选项的默认值。

commitGraph.readChangedPaths

如果为true,那么git将在提交图文件中使用更改路径的Bloom过滤器(如果它存在,并且它们存在)。默认为true。更多信息请参见git-commit-graph(1)。

credential.helper

指定当需要用户名或密码凭据时要调用的外部帮助器;帮助器可以咨询外部存储以避免提示用户输入凭据。这通常是带有可能参数的凭据助手的名称,但也可以是带有参数的绝对路径,如果前面有!,则可以是shell命令。

注意,可以定义多个助手。有关详细信息和示例,请参见gitcredentificals(7)。

credential.useHttpPath

获取凭据时,应考虑http或https URL的“路径”组件非常重要。默认为false。有关更多信息,请参见gitdentificals(7)。

credential.username

如果没有为网络身份验证设置用户名,则默认使用此用户名。见下面的凭证.*和gitcredentificates(7)。

证件。*

上面的任何凭据.*选项都可以选择性地应用于某些凭据。例如,“credential.https://example.com.username”将仅将https连接的默认用户名设置为example.com。 有关URL如何匹配的详细信息,请参阅gitdentificals(7)。

credentialCache.ignoreSIGHUP

告诉git-credential-cache-daemon忽略SIGHUP,而不是退出。

credentialStore.lockTimeoutMS

git-credential-store试图锁定凭据文件时重试的时间长度(毫秒)。值0表示根本不重试;-1表示无限期地尝试。默认值为1000(即,1的重试)。

completion.commands

这只用于git-complete.bash从已完成命令列表中添加或删除命令。通常只完成瓷器命令和一些精选的其他命令。您可以在这个变量中添加更多的命令,用空格分隔。以-为前缀的命令将从现有列表中删除它。

diff.autoRefreshIndex

当使用git diff与工作树文件进行比较时,不要将仅统计的更改视为已更改。相反,安静地运行git update-index-refresh来更新工作树中内容与索引中内容匹配的路径的缓存状态信息。此选项默认为true。注意,这只会影响git diff瓷器,而不会影响诸如git diff-file之类的低级diff命令。

diff.dirstat

以逗号分隔的-dirstat参数列表,指定-dirstat选项的默认行为为git-diff(1)和friends。可以在命令行上重写默认值(使用--dirstat=>)。fallback默认值(当diff.dirstat未更改时)是变化,非累积,3。以下参数可用:

变更

通过计算已从源删除或添加到目标的行数来计算dirstat数。这忽略了文件中的纯代码移动量。换句话说,重新排列文件中的行并不像其他更改那样多。这是未给出参数时的默认行为。

线路

通过进行常规的基于行的差异分析,并对删除/添加的行计数求和,来计算dirstat数。(对于二进制文件,计算64字节的块,因为二进制文件没有行的自然概念)。这是一种比更改行为更昂贵的dirstat行为,但它确实将文件中重新排列的行数计算为其他更改的行数。结果输出与从其他-*stat选项得到的结果一致。

文件

通过计算更改的文件数来计算dirstat数。在dirstat分析中,每个更改的文件计数相等。这是计算上最便宜的dirstat行为,因为它根本不需要查看文件内容。

累计

还计算父目录的子目录中的更改。注意,当使用累积时,所报告的百分比的总和可能超过100%。可以使用非累积参数指定默认(非累积)行为。

整数参数指定截止百分比(默认为3%)。贡献小于此百分比的更改的目录不会在输出中显示。

举例:下面将对更改后的文件进行计数,同时忽略更改后文件总数少于10%的目录,并在父目录中累积子目录计数:file,10,累积。

diff.statGraphWidth

在-stat输出中限制图形部分的宽度。如果设置了,则应用于生成-stat输出的所有命令(format-patch除外)。

diff.context

用上下文行而不是默认的3来生成差异。这个值被-U选项覆盖。

diff.interHunkContext

显示不同的部分之间的上下文,直到指定的行数,从而融合彼此靠近的部分。此值用作-inter-hunk上下文命令行选项的默认值。

diff.external

如果设置了此配置变量,则不使用内部diff机器执行diff生成,而是使用给定的命令。可以用'GIT_EXTERNAL_DIFF'环境变量重写。使用git(1)中“git difs”中描述的参数调用该命令。注意:如果您希望只对文件的子集使用外部diff程序,则可能需要使用gitattributes(5)。

diff.ignoreSubmodules

设置-忽略-子模块的默认值。请注意,这只影响git diff瓷器,而不影响较低级别的diff命令,如git diff-files。当报告未提交的更改时,git checkout和git switch也会遵守此设置。当设置status.submoduleSummary时,将其设置为所有将禁用通常由git commit和git status显示的子模块摘要,除非使用-忽略子模块命令行选项来重写它。git子模块命令不受此设置的影响。默认情况下,这被设置为untracked,以便忽略任何未跟踪的子模块。

diff.mnemonicPrefix

如果设置了,则git diff使用与标准“a/”和“b/”不同的前缀对,这取决于所比较的内容。当这种配置有效时,反向diff输出也交换前缀的顺序:

很不一样

比较(i)ndex和(w)ork树;

Git diff head

比较(c)ommit和(w)ork树;

git diff --cached

比较(c)Omit和(i)ndex;

git diff HEAD:file1 file2

比较(o)对象和(w)k树实体;

git diff-无索引a b

比较两个非git事物(1)和(2)。

diff.noprefix

如果设置,git diff将不显示任何源前缀或目标前缀。

diff.relative

如果设置为true,git diff将不显示目录外的更改,并显示相对于当前目录的路径名。

diff.orderFile

指示如何在diff中排序文件的文件。详见git-diff(1)的-O选项。如果diff.orderFile是相对路径名,则将其视为相对于工作树的顶部。

diff.renameLimit

复制/重命名检测的详尽部分中要考虑的文件数量;相当于git diff选项-l。如果未设置,则默认值当前为1000。如果重命名检测关闭,则此设置无效。

diff.renames

Git是否以及如何检测重命名。如果设置为“false”,则禁用重命名检测。如果设置为“true”,则启用基本重命名检测。如果设置为“副本”或“副本”,Git也将检测副本。默认为true。注意,这只会影响git-diff瓷器(如git-diff(1)和git-log(1)),而不会影响git-diff-files(1)等低级命令。

diff.suppressBlankEmpty

禁止在每个空输出行之前打印空格的标准行为的布尔值。默认为false。

diff.submodule

指定子模块中显示差异的格式。“短”格式仅在范围的开始和结束处显示提交的名称。“log”格式与git-submodule(1)summary一样列出了范围内的提交。“diff”格式显示子模块更改内容的内联diff。默认为“空头”。

diff.wordRegex

一个posix扩展正则表达式,用于在执行逐字差异计算时确定什么是“单词”。与正则表达式匹配的字符序列是“words”,所有其他字符都是可忽略的空白。

差异.指挥

自定义diff驱动程序命令。详见gitattributes(5)。

diff.xfunname

diff驱动程序应该用来识别hunk头的正则表达式。也可以使用内置模式。详见gitattributes(5)。

差异。二进制

将此选项设置为true以使diff驱动程序将文件视为二进制文件。详见gitattributes(5)。

差异.文本连接

diff驱动程序应该调用的命令来生成文件的文本转换版本。转换的结果用于生成人类可读的差异。详见gitattributes(5)。

diff..wordRegex

diff驱动程序用来拆分一行中的单词的正则表达式。详见gitattributes(5)。

diff..cachetextconv

将此选项设置为true以使diff驱动程序缓存文本转换输出。详见gitattributes(5)。

diff.tool

控制git-difftool(1)使用的diff工具。这个变量覆盖merge.toool中配置的值。下面的列表显示了有效的内置值。任何其他值都被视为自定义diff工具,并要求定义相应的difftool.cmd变量。

diff.guitool

控制指定-g/-gui标志时git-difftool(1)使用哪个diff工具。这个变量覆盖merge.j吉他中配置的值。下面的列表显示了有效的内置值。任何其他值都被视为自定义diff工具,并要求定义相应的difftool.cmd变量。

BC

BC3

BC4

codecompare

deltawalker

扩散

扩散

ecmerge

出来

examdiff

吉菲

gvimdiff

gvimdiff1

gvimdiff2

gvimdiff3

kdiff3

kompare

融合

nvimdiff

nvimdiff1

nvimdiff2

nvimdiff3

opendiff

p4merge

smerge

tkdiff

vimdiff

vimdiff1

vimdiff2

vimdiff3

Winmerge

xxdiff

diff.indentHeuristic

将此选项设置为false以禁用默认试探法,该试探法移动不同的大块边界,使补丁更易于阅读。

diff.algorithm

选择diff算法。变体如下:

违约,迈尔斯

基本贪婪diff算法。目前,这是默认值。

最小

花额外的时间来确保产生最小的差异。

耐心点

在生成补丁时使用“耐心差异”算法。

直方图

该算法将耐心算法扩展到“支持低出现的公共元素”。

diff.wsErrorHighlight

突出显示上下文中的空白错误、差异的旧行或新行。多个值用逗号分隔,none重置以前的值,默认值重置列表为new,所有这些都是旧的、新的、上下文的缩写。The whitespace errors are colored with color.diff.whitespace.命令行选项-ws-error-highlight=覆盖此设置。

diff.colorMoved

如果将diff设置为有效值或真值,则diff中移动的行的颜色会不同,有关有效模式的详细信息,请参阅git-diff(1)中的-color-moved。如果简单地设置为true,则将使用默认颜色模式。当设置为false时,移动的行不着色。

diff.colorMovedWS

当使用differ.colorMoved设置对移动的行进行着色时,此选项控制如何处理有效模式的详细信息,参见git-diff(1)中的-color-moved-ws。

Difftool.路径

重写给定工具的路径。这在您的工具不在PATH中的情况下很有用。

Difftool.cmd

指定调用指定diff工具的命令。指定的命令在shell中用下列变量计算:本地被设置为包含差异前图像的内容的临时文件的名称,而远程被设置为包含差异后图像的内容的临时文件的名称。

difftool.prompt

在每次调用diff工具之前提示。

extensions.objectFormat

指定要使用的哈希算法。可接受的值是sha1和sha256。如果未指定,则假定sha1。指定此密钥是错误的,除非core.repositoryFormatVersion为1。

请注意,此设置应仅由git-init(1)或git-clone(1)设置。尝试在初始化后更改它将不起作用,并且会产生难以诊断的问题。

fastimport.unpackLimit

如果git-fast-import(1)导入的对象数量低于此限制,则这些对象将被解包到松散的对象文件中。但是,如果导入对象的数量等于或超过此限制,则包将被存储为一个包。从快速导入中存储包可以使导入操作更快地完成,尤其是在较慢的文件系统上。如果未设置,则使用transfer.unpackLimit的值。

特色。*

以功能开头的配置设置。修改一组其他配置设置的默认值。这些组是由Git开发人员社区创建的,作为推荐的缺省值,可能会发生变化。特别地,可以添加具有不同默认值的新配置选项。

feature.experimental

启用Git新设置的配置选项,并将其考虑为将来的默认值。这里包含的配置设置可以随每个版本添加或删除,包括较小的版本更新。这些设置可能具有非预期的交互,因为它们是如此的新。如果您有兴趣提供关于实验特性的反馈,请启用此设置。新的默认值为:

跳过可以通过一次跳过更多的提交来改善获取协商时间,从而减少往返次数。

feature.manyFiles

启用配置选项,以优化工作目录中有多个文件的回购。对于许多文件,git status和git checkout等命令可能比较慢,这些新的默认值可以提高性能:

version=4启用索引中的路径前缀压缩。

core.untrackedCache=true enables the untracked cache.此设置假定mtime正在您的计算机上工作。

fetch.recurseSubmodules

这个选项控制git fetch(以及git pull中的底层fetch)是否会递归地提取到填充的子模块中。此选项可以设置为布尔值或按需设置。将其设置为布尔值会改变fetch和pull的行为,即在设置为true时无条件地递归到子模块中,或者在设置为false时根本不递归。当设置为按需时,fetch和pull只会在其超级项目检索更新子模块引用的提交时递归到填充子模块中。默认为按需,或子模块的值。如果设置,则递归。

fetch.fsckObjects

如果设置为true,git-fetch-pack将检查所有获取的对象。有关选中的内容,请参阅transfer.fsckObjects。默认为false。如果未设置,则使用transfer.fsckObjects的值。

fetch.fsck.

其作用类似于fsck,但由git-fetch-pack(1)代替git-fsck(1)使用。详见fsck.文档。

fetch.fsck.skipList

类似于fsck.skipList,但git-fetch-pack(1)使用git-fsck(1)。详见fsck.skipList文档。

fetch.unpackLimit

如果通过Git本机传输获取的对象数量低于这个限制,那么这些对象将被解压缩到松散的对象文件中。然而,如果接收到的对象的数目等于或超过该限制,则在添加任何缺失的增量基之后,接收到的包将被存储为包。从push存储包可以使push操作更快地完成,尤其是在较慢的文件系统上。如果未设置,则使用transfer.unpackLimit的值。

fetch.prune

如果为真,则fetch将自动表现为命令行上给出的-prune选项。另参见git-fetch(1)的远程.修剪和修剪部分。

fetch.pruneTags

如果为真,fetch将自动表现为修剪时提供的refs/tags/*:refs/tags/*refspec(如果尚未设置)。这允许设置此选项和fetch.prune,以维护到上游refs的1=1映射。参见远程剪枝标签和git-fetch(1)的剪枝部分。

fetch.output

控制如何打印ref更新状态。有效值是完整和紧凑的。默认值已满。详见git-fetch(1)中的OUTPUT部分。

fetch.negotiationAlgorithm

控制在协商要由服务器发送的包文件的内容时如何发送本地存储库中的提交信息。设置为“跳过”以使用跳过提交的算法来更快地收敛,但可能导致大于必需的包文件;或者设置为“noop”以根本不发送任何信息,这几乎肯定会导致大于必需的包文件,但将跳过协商步骤。默认值是“default”,它指示Git使用从不跳过提交的默认算法(除非服务器已经确认了它或它的一个后代)。如果启用了feature.实验性,则此设置默认为“跳过”。未知值将导致git fetch出错。

还可以参见git-fetch(1)的-协商-only和-协商-tip选项。

fetch.showForcedUpdates

设置为false以启用git-fetch(1)和git-pull(1)命令中的-no-show-forced-updates。默认为true。

fetch.parallel

指定一次并行运行的取操作的最大数量(子模块,或git-fetch(1)的-multiple选项生效时的remote)。

值为0将给出一些合理的默认值。如果未设置,则默认为1。

对于子模块,可以使用submodule.fetchJobs配置设置来覆盖此设置。

fetch.writeCommitGraph

设置为true以在每个从远程下载包文件的git fetch命令之后编写提交图。使用-split选项,大多数执行都会在现有的提交图文件之上创建一个非常小的提交图文件。有时,这些文件会合并,写入可能需要更长的时间。更新的提交图文件有助于执行许多Git命令,包括git merge-base、git push-f和git log-graph。默认为false。

format.attach

启用多部分/混合附件作为format-patch的默认值。该值也可以是双引号字符串,它将启用附件作为默认值,并将该值设置为边界。请参阅git-format-patch(1)中的-attach选项。

format.from

为format-patch的-from选项提供默认值。接受布尔值或名称和电子邮件地址。如果false,format-patch默认为-no-from,直接在补丁邮件的“From:”字段中使用提交作者。如果为真,则format-patch默认为-from,在补丁邮件的“From:”字段中使用您的提交者标识,如果不同,则在补丁邮件的正文中包括“From:”字段。如果设置为非布尔值,format-patch将使用该值而不是您提交人标识。默认为false。

format.numbered

可以启用或禁用补丁主题中的序列号的布尔值。它默认为“自动”,只有当有多个补丁时才启用它。通过将它设置为“true”或“false”,可以对所有消息启用或禁用它。参见git-format-patch(1)中的编号选项。

format.headers

要通过邮件提交的补丁中包含的额外电子邮件标题。参见git-format-patch(1)。

格式.to

format.cc

要包括在通过邮件提交的补丁中的其他收件人。请参阅git-format-patch(1)中的-to和-cc选项。

format.subjectPrefix

format-patch的默认值是输出带有[PATCH]主题前缀的文件。使用此变量更改前缀。

format.coverFromDescription

format-patch的默认模式,用于确定求职信的哪些部分将使用分行的描述填充。请参阅git-format-patch(1)中的-cover-from-description选项。

format.signature

format-patch的默认值是输出一个包含Git版本号的签名。使用此变量更改默认值。将此变量设置为空字符串(“”)以抑制签名生成。

format.signatureFile

其工作原理与format.signature类似,但由该变量指定的文件内容将用作签名。

format.suffix

format-patch的默认值是输出后缀为.patch的文件。使用此变量更改后缀(如果需要,请确保包括点)。

format.encodeEmailHeaders

使用“Q编码”(RFC 2047中描述)对具有非ASCII字符的电子邮件头进行编码,以便进行电子邮件传输。默认为true。

format.pretty

log/show/whatchanged命令的默认漂亮格式,参见git-log(1)、git-show(1)、git-whatchanged(1)。

format.thread

git format-patch的默认线程样式。可以是布尔值,也可以是shallow或deep。shallow threading使每个邮件都是对系列开头邮件的回复,其中开头按照这个顺序从求职信、-in-reply-to和第一个修补邮件中选择。deep threading使每个邮件都是对前一封邮件的回复。真布尔值与shallow值相同,而false值禁用线程。

format.signOff

一个布尔值,允许默认情况下启用format-patch的-s/-signoff选项。注:将预告片签名添加到补丁中应该是一种有意识的行为,这意味着您可以证明您有权在相同的开源许可下提交此工作。请参见“提交补丁”文档以供进一步讨论。

format.coverLetter

一种布尔值,用于在调用format-patch时控制是否生成封面字母,但另外可以将其设置为“auto”,以便仅在有多个补丁时生成封面字母。默认为假。

format.outputDirectory

设置自定义目录以存储结果文件而不是当前工作目录。将创建所有目录组件。

format.filenameMaxLength

format-patch命令生成的输出文件名的最大长度;默认值为64。可以由-filename-max-length=命令行选项重写。

format.useAutoBase

一个布尔值,允许默认情况下启用format-patch的-base=auto选项。也可以设置为“when Able”以允许在适当的基可用时启用-base=auto,但在格式不变的情况下跳过添加基信息。

format.notes

提供-notes选项的默认值以格式化-修补程序。接受布尔值或指定在何处获取注释的ref。如果false,format-patch默认为-no-notes。如果为真,format-patch默认为-notes。如果设置为非布尔值,format-patch默认为-notes=,其中ref是非布尔值。默认为false。

如果希望使用referref/notes/true,请使用该文本。

这种配置可以被指定多次,以便允许包括多个票据参考。在这种情况下,它的行为类似于传入的多个-[no-]notes[=]选项。也就是说,值true将显示默认注释,值true也将显示来自注释ref的注释,值false将否定先前的配置而不显示注释。

例如,

【格式】

注=真实

注=foo

注释=假

注释=bar

将只显示来自refs/notes/bar的注释。

过滤器。清洁

用于在签入时将工作树文件的内容转换为blob的命令。详见gitattributes(5)。

过滤.污迹

签出时用于将blob对象的内容转换为工作树文件的命令。详见gitattributes(5)。

fsck.

在fsck期间,git可能会发现遗留数据的问题,这些数据不会由git的当前版本生成,并且如果transfer.fsckObjects被设置,这些数据也不会通过有线发送。此特性旨在支持使用包含此类数据的遗留存储库。

设置fsck将被git-fsck(1)拾取,但是接受对这样的数据集receive.fsck的推送,或者克隆或获取它的set fetch.fsck。

为了简洁起见,文档的其余部分讨论了fsck.*,但同样适用于相应的receive.fsck.*和fetch。*.变量。

与color.ui和core.editor等变量不同,receive.fsck和fetch.fsck.变量如果没有设置,就不会回到fsck配置中。为了在不同的环境中统一配置相同的fsck设置,它们必须全部设置为相同的值。

设置fsck时,可以通过配置fsck将错误切换为警告,反之亦然。设置fsck消息ID为fsck,值为错误、警告或忽略之一。为了方便起见,fsck用消息ID前缀错误/警告,例如“missingEmail:无效作者/提交者行-丢失电子邮件”意味着设置fsck.missingEmail=忽略将隐藏该问题。

一般来说,最好用fsck.skipList枚举有问题的现有对象,而不是列出这些有问题的对象共享的要忽略的中断类型,因为使用后者将允许相同中断的新实例不被注意到。

设置未知的fsck值将导致fsck死亡,但对receive.fsck和fetch.fsck执行同样的操作只会导致git发出警告。

fsck.skipList

指向对象名称列表(即每行一个未缩写的SHA-1)的路径,这些对象名称已知以非致命的方式被破坏,并且应该被忽略。在Git 2.20和更高版本的注释(#)上,空行和任何前导和尾随空格都被忽略。在旧版本中,除了每行的SHA-1以外的所有内容都会出错。

当一个已建立的项目应该被接受时,这个特性是有用的,尽管早期提交包含可以被安全忽略的错误,例如无效的提交人电子邮件地址。注意:使用此设置不能跳过损坏的对象。

Like fsck. this variable has corresponding receive.fsck.skipList and fetch.fsck.skipList variants.

Unlike variables like color.ui and core.editor the receive.fsck.skipList and fetch.fsck.skipList variables will not fall back on the fsck.skipList configuration if they aren’t set.为了在不同的环境中统一配置相同的fsck设置,它们必须全部设置为相同的值。

旧版本的Git(在2.20之前)记录了对象名称列表应该被排序。这从来都不是一个要求,对象名称可以以任何顺序出现,但当读取列表时,我们跟踪列表是否为内部二进制搜索实现的目的而排序,这可以为已经排序的列表节省一些工作。除非你有一个巨大的清单,否则没有理由特意对清单进行预先排序。在Git版本2.20之后,将使用哈希实现,因此现在没有理由对列表进行预排序。

gc.aggressiveDepth

git gc-agentive使用的delta压缩算法中使用的深度参数。默认为50,这是不使用-agentive时-depth选项的默认选项。

有关详细信息,请参阅git-repack(1)中的-depth选项文档。

gc.aggressiveWindow

git gc-agentive使用的delta压缩算法中使用的窗口大小参数。默认为250,这是一个比10的默认窗口更积极的窗口大小。

有关详细信息,请参阅git-repack(1)中-window选项的文档。

gc.auto

当存储库中的松散对象大约多于这个数量时,git gc-auto将对它们进行打包。一些瓷器命令使用此命令不时执行轻量级垃圾收集。默认值为6700。

将其设置为0不仅会禁用基于松散对象数量的自动打包,还会禁用任何其他启发式git gc-auto来确定是否有工作要做,比如gc.autoPackLimit。

gc.autoPackLimit

当存储库中有超过这个数量的包没有用*.keep文件标记时,git gc-auto将它们合并到一个更大的包中。默认值为50。将其设置为0将禁用它。将gc.auto设置为0也将禁用此功能。

参见下面的gc.bigPackThreshold配置变量。使用时,它将影响自动包装限制的工作方式。

gc.autoDetach

使git gc-auto立即返回,并在系统支持的情况下在后台运行。违约为真。

gc.bigPackThreshold

如果非零,则在运行git gc时保留大于此限制所有包。这与-保持最大包非常相似,除了所有满足阈值的包都被保持,而不仅仅是最大的包。默认为零。支持k、m或g的公共单元后缀。

注意,如果保存的包的数量大于gc.autoPackLimit,则忽略该配置变量,除了基本包之外的所有包都将被重新打包。在此之后,包的数量应低于gc.autoPackLimit和gc.bigPackThreshold,应再次遵守。

如果git repack平滑运行所估计的内存量不可用,并且gc.bigPackThreshold未设置,则最大的包也将被排除(这相当于使用-keep-maximate-pack运行git gc)。

gc.writeCommitGraph

如果为真,那么当git-gc(1)运行时,gc将重写提交图文件。当使用git gc-auto时,如果需要内务处理,提交图将被更新。违约为真。详见git-commit-graph(1)。

gc.logExpiry

如果文件gc.log存在,那么git gc-auto将打印其内容并以状态0退出,而不是运行,除非该文件超过了gc.logExpiry old。默认为“1.天”。有关指定其值的更多方法,请参见gc.pruneExpire。

gc.packRefs

在存储库中运行git pack-refs会使它在1.5.1.2之前的Git版本中无法通过哑传输(如HTTP)克隆。这个变量决定git gc是否运行git pack-refs。可以将其设置为notbare以在所有非bare repos中启用,也可以将其设置为布尔值。默认为真。

gc.pruneExpire

当git gc运行时,它将调用prune-express 2.weights.ago。使用此配置变量覆盖宽限期。值“now”可用于禁用此宽限期,并始终立即修剪不可到达的对象,或“从不”可用于抑制修剪。当git gc与写入存储库的另一个进程同时运行时,此特性有助于防止损坏;请参阅git-gc(1)的“NOTES”部分。

gc.worktreePruneExpire

当git gc运行时,它调用git工作树prune-express 3.monthers.ago。此配置变量可用于设置不同的宽限期。值“now”可用于禁用宽限期并立即修剪$GIT_DIR/工作树,或“从不”可用于抑制修剪。

gc.reflogExpire

gc..reflogExpire

Git reflog过期将删除比此时间更早的reflog条目;默认值为90天。值“now”立即过期所有条目,而“never”则完全抑制过期。如果“”(例如“refs/stash”)位于中间,则该设置仅适用于与。

gc.reflogExpireUnreachable

gc..reflogExpireUnreachable

Git reflog expend将删除比此时间更早且无法从当前提示访问的reflog条目;默认值为30天。值“now”立即过期所有条目,而“never”则完全抑制过期。如果“”(例如“refs/stash”)位于中间,则该设置仅适用于与。

这些类型的条目通常是由于使用git commit-amit或git rebase而创建的,并且是在修改或rebase发生之前的提交。由于这些更改不是当前项目的一部分,大多数用户都希望更快地过期,这就是为什么默认值比gc.reflogExpire更具侵略性的原因。

gc.rerereResolved

当git rerere gc运行时,您先前解决的冲突合并的记录将保留多天。您还可以使用更多可供人阅读的“1.month.ago”等。默认为60天。见git-rere(1)。

gc.rerereUnresolved

当git rerere gc运行时,您尚未解决的冲突合并记录将保留多天。您还可以使用更多可供人阅读的“1.month.ago”等。默认为15天。见git-rere(1)。

gitcvs.commitMsgAnnotation

将此字符串附加到每个提交消息。设置为空字符串以禁用此功能。默认为“via git-CVS模拟器”。

gitcvs.enabled

是否为此存储库启用CVS服务器接口。参见git-cvsserver(1)。

gitcvs.logFile

CVS服务器接口良好的日志文件的路径...记录各种内容。参见git-cvsserver(1)。

gitcvs.usecrlfattr

如果为真,服务器将查找文件的行尾转换属性,以确定要使用的-k模式。如果属性强制Git将文件视为文本,那么-k模式将留空,因此CVS客户端将将其视为文本。如果它们抑制文本转换,则文件将被设置为-KB模式,这将抑制客户机可能执行的任何换行符。如果属性不允许确定文件类型,则使用gitcvs.allBinary。见gitattributes(5)。

gitcvs.allBinary

如果gitcvs.usecrlfattr不能解析要使用的正确-KB模式,则使用此方法。如果为真,则所有未解析的文件都将以-KB模式发送到客户端。这会导致客户端将它们视为二进制文件,这会抑制任何换行munging,否则可能会这样做。或者,如果它被设置为“猜测”,则检查文件的内容,以确定它是否是二进制的,类似于core.autocrlf。

gitcvs.dbName

git-cvsserver用来缓存从Git存储库派生的修订信息的数据库。确切的含义取决于所使用的数据库驱动程序,对于SQLite(默认驱动程序)来说,这是一个文件名。支持变量替换(详见git-cvsserver(1))。不能包含分号(;)。默认:%Ggitcvs.%m.sqlite

gitcvs.dbDriver

使用的Perl DBI驱动程序。您可以在这里指定任何可用的驱动程序,但它可能不起作用。git-cvsserver使用DBD::SQLite进行测试,报告使用DBD::pg,报告不使用DBD::mysql。实验特性。不能包含双冒号(:)。默认:SQLite.参见git-cvsserver(1)。

gitcvs.dbUser, gitcvs.dbPass

数据库用户和密码。只有在设置gitcvs.dbDriver时才有用,因为SQLite没有数据库用户和/或密码的概念。gitcvs.dbUser支持变量替换(详见git-cvsserver(1))。

gitcvs.dbTableNamePrefix

数据库表名前缀。附加到所使用的任何数据库表的名称之前,允许单个数据库用于多个存储库。支持变量替换(详见git-cvsserver(1))。任何非字母字符将被下划线替换。

除了gitcvs.usecrlfattr和gitcvs.allBinary之外的所有gitcvs变量也可以指定为gitcvs..(其中access_method是“ext”和“pserver”之一),以使它们仅适用于给定的访问方法。

gitweb.category

gitweb.description

gitweb.owner

gitweb.url

有关说明见gitweb(1)。

gitweb.avatar

gitweb.blame

gitweb.grep

gitweb.highlight

gitweb.patches

gitweb.pickaxe

gitweb.remote_heads

gitweb.showSizes

gitweb.snapshot

参见gitweb.conf(5)的描述。

grep.lineNumber

如果设置为true,则默认启用-n选项。

grep.column

如果设置为true,则默认启用-column选项。

grep.patternType

设置默认匹配行为。使用basic、extended、fixed或perl的值将相应地启用-basic-regexp、-extended-regexp、-fixed-string或--perl-regexp选项,而值default将返回默认的匹配行为。

grep.extendedRegexp

如果设置为true,则默认启用-extended-regexp选项。当grep.patternType选项设置为默认值以外的值时,此选项将被忽略。

grep.threads

要使用的grep工作线程数。有关更多信息,请参阅git-grep(1)中的grep.threads。

grep.fallbackToNoIndex

如果设置为true,则如果在git存储库之外执行git grep,则返回到git grep-no-index。默认为false。

gpg.program

在制作或验证PGP签名时,使用此自定义程序,而不是$PATH上的“gpg”。程序必须支持与GPG相同的命令行接口,即验证分离的签名,"gpg-verify$signature-

gpg.format

指定使用-gpg-sign签名时使用的密钥格式。默认值是“openpgp”,另一个可能的值是“x509”。

GPG.项目

使用此选项可自定义用于您选择的签名格式的程序。(see gpg.program and gpg.format) gpg.program can still be used as a legacy synonym for gpg.openpgp.program.The default value for gpg.x509.program is "gpgsm".

gpg.minTrustLevel

指定签名验证的最小信任级别。如果未设置此选项,则合并操作签名验证需要至少具有边际信任的密钥。执行签名验证的其他操作需要至少具有未定义信任的密钥。设置此选项将覆盖所有操作所需的信任级别。支持值,按重要性的递增顺序:

未定义

从来没有

边际

完全

终极

gui.commitMsgWidth

定义git-gui(1)中提交消息窗口的宽度。默认为“75”。

gui.diffContext

指定在git-gui(1)对diff的调用中应该使用多少上下文行。默认为“5”。

gui.displayUntracked

确定git-gui(1)是否在文件列表中显示未跟踪的文件。默认为“真”。

gui.encoding

指定用于显示git-gui(1)和gitk(1)中的文件内容的默认编码。可以通过设置相关文件的编码属性来覆盖它(参见gitattributes(5))。如果未设置此选项,则工具默认为区域设置编码。

gui.matchTrackingBranch

确定用git-gui(1)创建的新分支是否默认跟踪具有匹配名称的远程分支。默认:“假”。

gui.newBranchTemplate

在使用git-gui(1)创建新分支时,将其用作建议名称。

gui.pruneDuringFetch

如果在执行获取时git-gui(1)应该删除远程跟踪分支,则为“true”。默认值为“false”。

gui.trustmtime

确定git-gui(1)是否应该信任文件修改时间戳。默认情况下,时间戳不受信任。

gui.spellingDictionary

指定git-gui(1)中用于拼写检查提交消息的字典。当设置为“无”时,拼写检查将关闭。

gui.fastCopyBlame

如果为真,git gui fall使用-C而不是-c-c来进行原始位置检测。它以不太彻底的拷贝检测为代价,大大加快了对大型存储库的指责。

gui.copyBlameThreshold

指定在git gui fault原始位置检测中使用的阈值,以字母数字字符测量。有关复制检测的更多信息,请参阅git-fault(1)手册。

gui.blamehistoryctx

当从git gui fault调用Show History Context菜单项时,指定要在gitk(1)中为所选提交显示的历史上下文半径(以天为单位)。如果将此变量设置为零,则显示整个历史。

guitool..cmd

指定当调用git-gui(1)Tools菜单的相应项时要执行的shell命令行。此选项对于每个工具都是强制性的。该命令从工作目录的根目录执行,并且在环境中它接收工具的名称为GIT_GUITOOL,当前选择的文件名称为FILENAME,当前分支的名称为CUR_BRANCH(如果头部分离,则CUR_BRANCH为空)。

guitool..needsFile

只有在GUI中选择了差异时才运行该工具。它保证FILENAME不是空的。

guitool..noConsole

安静地运行该命令,而不创建显示其输出的窗口。

guitool..noRescan

在工具完成执行后,不要重新扫描工作目录以进行更改。

吉他。确认

在实际运行该工具之前显示确认对话框。

guitool..argPrompt

向用户请求字符串参数,并通过ARGS环境变量将其传递给工具。由于请求参数意味着确认,因此如果启用此选项,确认选项将不起作用。如果该选项设置为true、yes或1,则对话框使用内置的通用提示;否则使用变量的确切值。

guitool..revPrompt

向用户请求一个有效的修订,并设置REVISION环境变量。在其他方面,该选项类似于argPrompt,可以与之一起使用。

guitool..revUnmerged

在revPrompt子对话框中只显示未合并的分支。这对于类似于合并或重基的工具很有用,但对于签出或重置这样的工具却很有用。

吉他。标题

指定用于提示对话框的标题。默认值是工具名称。

吉他。提示

在argPrompt和revPrompt的小节之前指定要显示在对话框顶部的常规提示字符串。默认值包括实际命令。

help.browser

指定将用于以web格式显示帮助的浏览器。参见git-help(1)。

help.format

覆盖git-help(1)使用的默认帮助格式。支持值man、info、web和html。MAN是默认值。web和html是相同的。

help.autoCorrect

如果git检测到输入错误,并且能够准确地识别出一个与错误类似的有效命令,则git将在等待由该配置值以十进制数(0.1秒)定义的持续时间后自动运行预期命令。如果该值为0,则将显示建议的校正,但不执行。如果它是负整数,或“immediate”,建议的命令将立即运行。如果“从不”,则根本不显示建议。默认值为零。

help.htmlPath

指定HTML文档驻留的路径。支持文件系统路径和URL。当帮助以web格式显示时,HTML页面将以该路径为前缀。这默认为Git安装的文档路径。

http.proxy

覆盖HTTP代理,通常使用http_proxy、https_proxy和all_proxy环境变量进行配置(参见curl(1))。除了curl所理解的语法之外,还可以指定一个带有用户名但没有密码的代理字符串,在这种情况下,git将尝试以与其他凭据相同的方式获取一个。有关更多信息,请参见gitdentificals(7)。因此语法是[protocol://][user[:password]@]proxyhost[:port]。这可以在每个远程的基础上重写;参见远程。代理

http.proxyAuthMethod

设置要针对HTTP代理进行身份验证的方法。这仅在配置的代理字符串包含用户名部分(即,形式为user@host或user@host:port)时生效。这可以在每个远程的基础上重写;参见remote.proxyAuthMethod。这两者都可以被GIT_HTTP_PROXY_AUTHMethod环境变量覆盖。可能的值为:

自动选择合适的认证方法。假设代理应答具有407状态码的未认证请求和具有支持的认证方法的一个或多个代理认证报头。这是默认的。

Basic-HTTP Basic身份验证

摘要-HTTP摘要身份验证;这防止密码以明文传输到代理

协商-GSS-协商身份验证(比较curl(1)的-协商选项)

NTLM-NTLM身份验证(比较curl(1)的-ntlm选项)

http.proxySSLCert

存储客户端证书的文件的路径名,用于通过HTTPS代理进行身份验证。可以由GIT_PROXY_SSL_CERT环境变量覆盖。

http.proxySSLKey

存储私钥的文件的路径名,该私钥用于通过HTTPS代理进行身份验证。可以由GIT_PROXY_SSL_KEY环境变量覆盖。

http.proxySSLCertPasswordProtected

启用代理SSL证书的Git密码提示。否则,如果证书或私钥被加密,OpenSSL可能会多次提示用户。可以由GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED环境变量覆盖。

http.proxySSLCAInfo

包含证书包的文件的路径名,当使用HTTPS代理时,应使用该证书包验证代理。可以由GIT_PROXY_SSL_CAINFO环境变量覆盖。

http.emptyAuth

尝试身份验证而不寻求用户名或密码。这可以用于尝试GSS-Negotiate身份验证,而无需在URL中指定用户名,因为libcurl通常需要用户名进行身份验证。

http.delegation

控制GSSAPI凭据委托。从版本7.21.7开始,libcurl默认禁用委托。设置参数以告知服务器在涉及到用户凭据时允许委托什么。与GSS/Kerberos一起使用。可能的值为:

不-不允许任何授权。

Policy-当且仅当Kerberos服务票证中设置了OK-AS-delegate标志时才进行委托,这是领域策略的问题。

始终-无条件地允许服务器委托。

http.extraHeader

在与服务器进行通信时传递额外的HTTP标头。如果存在多个这样的条目,则所有条目都作为额外的标头添加。为了允许重写从系统配置继承的设置,空值将把额外的标头重置为空列表。

http.cookieFile

包含先前存储的cookie行的文件的路径名,如果它们与服务器匹配,则应在Git http会话中使用。要从中读取cookie的文件的文件格式应该是纯HTTP头或Netscape/Mozilla cookie文件格式(参见curl(1))。注意,除非设置了http.saveCookies,否则用http.cookieFile指定的文件仅用作输入。

http.saveCookies

如果设置了,则将请求期间接收到的cookie存储到http.cookieFile指定的文件。如果未设置http.cookieFile,则无效。

http.version

与服务器进行通信时使用指定的HTTP协议版本。如果您想强制使用默认值。可用和默认版本依赖于libcurl。目前,该选项的可能值为:

HTTP/2

HTTP/1.1

http.sslVersion

协商SSL连接时使用的SSL版本,如果您想强制使用默认值。可用和默认版本取决于libcurl是根据NSS还是OpenSSL构建的,以及所使用的加密库的特定配置。这在内部设置了CURLOPT_SSL_VERSION选项;有关此选项格式和所支持的ssl版本的详细信息,请参阅libcurl文档。目前,该选项的可能值为:

sslv2

sslv3

tlsv1

tlsv1.0

tlsv1.1

tlsv1.2

tlsv1.3

可以由GIT_SSL_VERSION环境变量覆盖。要强制git使用libcurl的默认ssl版本并忽略任何显式的http.sslversion选项,请将GIT_SSL_Version设置为空字符串。

http.sslCipherList

协商SSL连接时使用的SSL密码列表。可用的密码取决于libcurl是根据NSS还是OpenSSL构建的,以及所使用的加密库的特定配置。这在内部设置了CURLOPT_SSL_CIPHER_LIST选项;有关此列表格式的更多详细信息,请参阅libcurl文档。

可以由GIT_SSL_CIPHER_LIST环境变量覆盖。要强制git使用libcurl的默认密码列表并忽略任何显式http.sslCipherList选项,请将GIT_SSL_CIPHER_LIST设置为空字符串。

http.sslVerify

获取或推送HTTPS时是否验证SSL证书。默认为true。可以由GIT_SSL_NO_VERIFY环境变量覆盖。

http.sslCert

获取或推送HTTPS时包含SSL证书的文件。可以由GIT_SSL_CERT环境变量覆盖。

http.sslKey

获取或推送HTTPS时包含SSL私钥的文件。可以由GIT_SSL_KEY环境变量覆盖。

http.sslCertPasswordProtected

启用SSL证书的Git密码提示。否则,如果证书或私钥被加密,OpenSSL可能会多次提示用户。可以由GIT_SSL_CERT_PASSWORD_PROTECTED环境变量覆盖。

http.sslCAInfo

包含获取或推送HTTPS时用于验证对等体的证书的文件。可以由GIT_SSL_CAINFO环境变量覆盖。

http.sslCAPath

路径,包含带有CA证书的文件,用于在获取或推送HTTPS时验证对等体。可以由GIT_SSL_capath环境变量覆盖。

http.sslBackend

要使用的SSL后端名称(例如“openssl”或“schannel”)。如果cURL不支持在运行时选择SSL后端,则忽略此选项。

http.schannelCheckRevoke

用于当http.sslBackend分别通过“true”和“false”设置为“schannel”时,在cURL中强制或禁用证书撤销检查。另一个可接受的值是“尽力而为”(默认值),在这种情况下执行撤销检查,但是由于脱机的撤销列表分发点而导致的错误以及由于证书缺少撤销列表分发点而导致的错误被无声地忽略。如果cURL不支持在运行时设置相关SSL选项,则忽略此选项。

http.schannelUseSSLCAInfo

从cURL v7.60.0开始,安全通道后端可以使用通过http.sslCAInfo提供的证书包,但这将覆盖Windows证书存储。由于这在默认情况下是不可取的,因此当通过http.sslBackend配置schannel后端时,Git将在默认情况下告诉cURL不要使用该绑定包,除非http.schannelUseSSLCAInfo覆盖此行为。

http.sslAutoClientCert

从cURL v7.77.0开始,安全通道后端将不再自动从Windows证书存储中发送客户端证书。要选择使用旧的行为,可以设置http.sslAutoClientCert。

http.pinnedpubkey

https服务的公钥。它可以是PEM或DER编码的公钥文件的文件名,或者是以公钥的sha256//之后是base64编码的sha256散列开始的字符串。另请参见libcurl CURLOPT_PINNEDPUBLICKEY。如果设置了此选项但cURL不支持,则git将退出并出错。

http.sslTry

当通过常规FTP协议连接时,尝试使用auth ssl/TLS和加密数据传输。如果FTP服务器出于安全原因需要它,或者您希望在远程FTP服务器支持它时安全地连接它,则可能需要这样做。默认值为false,因为它可能在配置错误的服务器上触发证书验证错误。

http.maxRequests

并行启动多少HTTP请求。可以由GIT_HTTP_MAX_REQUESTS环境变量覆盖。默认为5。

http.minSessions

跨请求保持的curl会话数(跨时隙计数)。在调用http_cleanup()之前,它们不会以curl_easy_cleanup()结束。如果未定义USE_CURL_MULTI,则该值的上限为1。默认为1。

http.postBuffer

在将数据POST发送到远程系统时,智能HTTP传输使用的缓冲区的最大大小(字节)。对于大于此缓冲区大小的请求,使用HTTP/1.1和Transfer-Encoding:chunked来避免在本地创建大量的包文件。默认为1 MiB,这对于大多数请求都是足够的。

请注意,提高这个限制只对禁用分块传输编码有效,因此只应在远程服务器或代理仅支持HTTP/1.0或不符合HTTP标准的情况下使用。一般来说,提高这一点并不是大多数推送问题的有效解决方案,但会显著增加内存消耗,因为即使对于小推送,也会分配整个缓冲区。

http.lowSpeedLimit, http.lowSpeedTime

如果HTTP传输速度小于http.lowSpeedLimit持续超过http.lowSpeedTime秒,则传输将中止。可以由GIT_HTTP_LOW_SPEED_LIMIT和GIT_HTTP_LOW_SPEED_TIME环境变量覆盖。

http.noEPSV

通过curl禁用epsv ftp命令的布尔值。这对一些不支持epsv模式的“差”ftp服务器很有帮助。可以由GIT_CURL_FTP_NO_epsv环境变量覆盖。默认值为false(curl将使用epsv)。

http.userAgent

呈现给HTTP服务器的http user_AGENT字符串。默认值表示客户端Git的版本,如git/1.7.1。该选项允许您将该值重写为更常见的值,如Mozilla/4.0。例如,如果通过将HTTP连接限制为一组通用USER_AGENT字符串(但不包括git/1.7.1等字符串)的防火墙进行连接,则可能需要这样做。可以由GIT_HTTP_USER_AGENT环境变量覆盖。

http.followRedirects

git是否应该遵循HTTP重定向。如果设置为true,git将透明地跟随它遇到服务器发出的任何重定向。如果设置为false,git将把所有重定向视为错误。如果设置为initial,则git将只对到远程的初始请求进行重定向,而不会对后续HTTP请求进行重定向。由于git使用重定向的URL作为后续请求的基础,这通常就足够了。默认为初始违约。

HTTP。*

上面的任何http.*选项都可以选择性地应用于某些URL。对于要匹配URL的配置键,将配置键的每个元素与URL的元素按以下顺序进行比较:

方案(例如https://example.com/中的https)。此字段必须在配置键和URL之间完全匹配。

主机/域名(例如https://example.com/中的example.com)。此字段必须在配置键和URL之间匹配。可以指定一个*作为主机名的一部分,以匹配这个级别的所有子域。例如,https://*.example.com/将匹配https://foo.example.com/,但不匹配https://foo.bar.example.com/。

端口号(例如,http://example.com:8080/中的8080)。此字段必须在配置键和URL之间完全匹配。在匹配之前,忽略的端口号会自动转换为该方案的正确默认值。

路径(例如,https://example.com/repo.git中的repo.git)。配置键的路径字段必须与URL的路径字段完全匹配,或者作为斜线分隔的路径元素的前缀匹配。这意味着配置键的路径foo/匹配URL路径foo/bar。前缀只能在斜线(/)边界上匹配。更长的匹配优先(因此,具有路径foo/bar的配置键比仅具有路径foo/的配置键与URL路径foo/bar的匹配更好)。

用户名(例如,https://user@example.com/repo.git中的用户)。如果配置键具有用户名,则它必须与URL中的用户名完全匹配。如果配置键没有用户名,则该配置键将匹配具有任何用户名(包括无)的URL,但优先级低于具有用户名的配置键。

上面的列表按优先级递减排序;与配置键路径匹配的URL优先于与其用户名匹配的URL。例如,如果URL是https://user@example.com/foo/bar,那么与https://user@example.com的配置密钥匹配相比,https://example.com的配置密钥匹配更可取。

在尝试任何匹配之前,所有URL都是标准化的(密码部分,如果嵌入在URL中,为了匹配的目的总是被忽略),以便简单拼写不同的等效URL将正确匹配。环境变量设置总是覆盖任何匹配项。匹配的URL是直接提供给Git命令的URL。这意味着由于重定向而访问的任何URL都不参与匹配。

i18n.commitEncoding

提交消息的字符编码存储在;Git本身并不关心,但这些信息是必要的,例如,当从电子邮件或gitk图形历史浏览器(可能在未来的其他地方或其他瓷器中)导入提交时。参见例如git-mailinfo(1)。默认为utf-8。

i18n.logOutputEncoding

在运行git日志和friends时,提交消息将转换为字符编码。

imap.folder

要将邮件放入的文件夹,通常是Drafts文件夹。例如:“INBOX.Drafts”、“INBOX/Drafts”或“[Gmail]/Drafts”。必填。

imap.tunnel

用于设置到IMAP服务器的隧道的命令,命令将通过管道传输,而不是使用到服务器的直接网络连接。未设置imap.host时需要。

imap.host

标识服务器的URL。对于非安全连接使用imap://前缀,对于安全连接使用IMAPS://前缀。设置imap.tunnel时忽略,但在其他情况下需要。

imap.user

登录到服务器时使用的用户名。

imap.pass

登录服务器时使用的密码。

imap.port

要连接到服务器上的整数端口号。imap://hosts默认为143,IMAPS://hosts默认为993。设置imap.tunnel时忽略。

imap.sslverify

启用/禁用SSL/TLS连接使用的服务器证书验证的布尔值。违约为真。设置imap.tunnel时忽略。

imap.preformattedHTML

在发送补丁时启用/禁用html编码的布尔值。html编码的补丁将以text/html为括号,内容类型为。具有讽刺意味的是,启用此选项会导致雷鸟将补丁以明文/文本的形式发送,format=fixed电子邮件。默认为假。

imap.authMethod

指定IMAP服务器身份验证的身份验证方法。如果使用NO_CURL选项构建Git,或者如果您的curl版本比7.34.0旧,或者您正在使用-no-curl选项运行git-imap-send,则唯一支持的方法是CRAM-MD5。如果没有设置,则git imap-send使用基本的IMAP明文LOGIN命令。

index.recordEndOfIndexEntries

指定索引文件是否应包括“索引结束条目”部分。这减少了多处理器机器上的索引加载时间,但在使用2.20之前的Git版本读取索引时,会产生“忽略EOIE扩展”的消息。如果index.threads已显式启用,则默认为true,否则为false。

index.recordOffsetTable

指定索引文件是否应包括“索引条目偏移量表”部分。这减少了多处理器机器上的索引加载时间,但在使用2.20之前的Git版本读取索引时,会产生“忽略IEOT扩展”的消息。如果index.threads已显式启用,则默认为true,否则为false。

index.sparse

启用后,使用稀疏目录项写入索引。This has no effect unless core.sparseCheckout and core.sparseCheckoutCone are both enabled.默认为false。

index.threads

指定加载索引时生成的线程数。这意味着减少多处理器机器上的索引加载时间。指定0或true将导致Git自动检测CPU的数量,并相应地设置线程的数量。指定1或false将禁用多线程。默认为true。

index.version

指定初始化新索引文件的版本。这不会影响现有的存储库。如果启用了feature.manyFiles,则默认值为4。

init.templateDir

指定复制模板的目录。(参见git-init(1)的“模板目录”部分。)

init.defaultBranch

允许重写默认分支名称,例如在初始化新存储库时。

instaweb.browser

指定将用于浏览gitweb中的工作存储库的程序。见git-instaweb(1)。

instaweb.httpd

在工作存储库上启动gitweb的HTTP守护进程命令行。见git-instaweb(1)。

instaweb.local

如果为真,由git-instaweb(1)启动的web服务器将绑定到本地IP(127.0.0.1)。

instaweb.modulePath

git-instaweb(1)代替/usr/lib/apache2/modules使用的默认模块路径。仅当httpd是Apache时使用。

instaweb.port

绑定gitweb httpd的端口号。见git-instaweb(1)。

interactive.singleKey

在交互命令中,允许用户用单键提供一个字母输入(即,不按回车键)。目前,git-add(1)、git-checkout(1)、git-restore(1)、git-commit(1)、git-reset(1)和git-stash(1)的-patch模式都使用了这一点。注意,如果便携式键击输入不可用,则此设置将被忽略;需要Perl模块Term::ReadKey。

interactive.diffFilter

当交互命令(如git add-patch)显示彩色diff时,git将通过这个配置变量定义的shell命令管道传输diff。如果命令保持与原始diff中的行的一对一对应,则命令可以进一步标记diff以供人类消费。默认值为禁用(无筛选)。

log.abbrevCommit

如果为真,则使git-log(1)、git-show(1)和git-whatchanged(1)假定--bypev-commit。您可以使用-no-explayv-commit覆盖此选项。

log.date

设置日志命令的默认日期-时间模式。为log.date设置值类似于使用git log的-date选项。详见git-log(1)。

log.decorate

打印出日志命令显示的任何提交的引用名称。如果指定short,则不打印引用名称前缀refs/heads/、refs/tags/和refs/remotes/。如果指定了full,则将打印完整的引用名称(包括前缀)。如果指定了auto,那么如果输出将到达终端,则将显示引用名称,就像给出short一样,否则不显示引用名称。这与git日志的-decaint选项相同。

log.excludeDecoration

从日志装饰中排除指定的模式。这类似于-decomy-refs-exclude命令行选项,但config选项可以被-decomy-refs选项覆盖。

log.diffMerges

设置用于合并提交的默认diff格式。详见git-log(1)中的-diff-merges。默认分离。

log.follow

如果为true,则git日志的作用就好像在给定单值时使用了-follow选项一样。这与-follow具有相同的限制,即它不能用于跟踪多个文件,并且不能很好地处理非线性历史。

log.graphColors

用逗号分隔的颜色列表,可用于在git log-graph中绘制历史线。

log.showRoot

如果为真,则初始提交将显示为一个大的创建事件。这相当于对空树的差异。像git-log(1)或git-whatchanged(1)这样通常隐藏根提交的工具现在将显示它。默认为真。

log.showSignature

如果为真,则使git-log(1)、git-show(1)和git-whatchanged(1)假设-show-signature。

log.mailmap

如果为真,则使git-log(1)、git-show(1)和git-whatchanged(1)假设-use-mailmap,否则假设-no-use-mailmap。默认为真。

lsrefs.unborn

可以是“广告”(默认)、“允许”或“忽略”。如果“通告”,则服务器将响应于发送“未出生”的客户端(如协议-V2.TXT中所描述的),并且将在协议V2能力通告期间通告对该特征的支持。“allow”与“adverage”相同,只是服务器不会通告对该功能的支持;这对于无法原子更新的负载平衡服务器(例如)很有用,因为管理员可以配置“allow”,然后在延迟之后配置“adverage”。

mailinfo.scissors

如果为true,则默认情况下git-mailinfo(1)(因此git-am(1))的行为就像命令行上提供了-sharter选项一样。当激活时,此功能将在剪刀线之前从消息体中删除所有内容(即主要由“>8”、“8”组成)

mailmap.file

扩充邮件映射文件的位置。首先加载位于存储库根目录中的默认mailmap,然后加载该变量指向的mailmap文件。mailmap文件的位置可以在存储库子目录中,也可以在存储库本身之外的某个地方。参见git-shortlog(1)和git-fault(1)。

mailmap.blob

与mailmap.file类似,但将该值视为对存储库中的blob的引用。如果同时给出了mailmap.file和mailmap.blob,则都会被解析,其中mailmap.file条目优先。在裸存储库中,默认为HEAD:.mailmap。在非裸存储库中,它默认为空。

maintenance.auto

这个布尔配置选项控制某些命令在完成正常工作后是否运行git维护run-auto。默认为true。

maintenance.strategy

这个字符串配置选项提供了一种方法来指定后台维护的几个推荐计划之一。这只影响在git维护run-schedule=X命令期间运行的任务,前提是没有提供-task=参数。此外,如果设置了维护.schedule配置值,则使用该值代替maintenance.strategy提供的值。可能的策略字符串是:

无:此默认设置意味着在任何计划下都不运行任何任务。

增量:此设置可优化执行不删除任何数据的小型维护活动。这并不调度gc任务,而是每小时运行预取和提交图任务,每天运行松散对象和增量repack任务,每周运行pack-refs任务。

维护.启用

此布尔配置选项控制在git维护运行指定无任务选项时是否运行带有名称的维护任务。如果存在-task选项,则忽略这些配置值。默认情况下,只有maintenance.gc.enabled为true。

维护.时间表

这个config选项控制在git维护run-schedule=命令期间是否运行给定的运行。该值必须是“小时”、“每日”或“每周”之一。

maintenance.commit-graph.auto

这个整数配置选项控制提交图任务作为git维护run-auto的一部分运行的频率。如果为零,则commit-graph任务将不使用-auto选项运行。负值将强制任务每次运行。否则,正值意味着当commit-graph文件中不存在的可达提交的数量至少是maintenance.commit-graph.auto的值时,命令应该运行。默认值为100。

maintenance.loose-objects.auto

这个整数配置选项控制松散对象任务作为git维护run-auto的一部分运行的频率。如果为零,那么松对象任务将不会使用-auto选项运行。负值将强制任务每次运行。否则,正值意味着当松散对象的数量至少是maintenance.loose-objects.auto的值时,该命令应该运行。默认值为100。

maintenance.incremental-repack.auto

这个整数配置选项控制增量repack任务作为git维护run-auto的一部分运行的频率。如果为零,那么增量-repack任务将不会使用-auto选项运行。负值将强制任务每次运行。否则,正值意味着当multi-pack-index中不包含的pack-file的数量至少是maintenance.incremental-repack.auto的值时,该命令应该运行。默认值为10。

man.viewer

指定可用于以人工格式显示帮助的程序。参见git-help(1)。

男:cmd

指定调用指定的人工查看器的命令。指定的命令在shell中计算,并将手册页作为参数传递。(见git-help(1)。)

人.路

覆盖可用于以人工格式显示帮助的给定工具的路径。参见git-help(1)。

merge.conflictStyle

指定合并时将冲突的块写入工作树文件的样式。默认为“合并”,显示一个<<<<>>>>标记。另一种样式“diff3”在=========标记之前添加了一个“||||||||”标记和原始文本。

merge.defaultToUpstream

如果在没有任何提交参数的情况下调用merge,则使用远程跟踪分支中存储的最近观察到的值合并为当前分支配置的上游分支。查询以分支.remote命名的在远程的分支.merge的值,然后通过远程映射它们,获取它们对应的远程跟踪分支,并合并这些跟踪分支的提示。默认为true。

merge.ff

默认情况下,当合并当前提交的后代提交时,Git不会创建额外的合并提交。相反,当前分支的尖端是快进的。当设置为false时,这个变量告诉Git在这种情况下创建一个额外的合并提交(相当于从命令行提供-no-ff选项)。当设置为“仅”时,只允许这种快进合并(相当于从命令行提供-ff-only选项)。

merge.verifySignatures

如果为真,则相当于-verify-signature命令行选项。详见git-merge(1)。

merge.branchdesc

除了分支名称外,还使用与之关联的分支描述文本填充日志消息。默认为false。

merge.log

除了分支名称外,从合并的实际提交中,最多用指定数量的一行描述填充日志消息。默认值为false,true是20的同义词。

merge.suppressDest

通过向这个多值配置变量添加匹配集成分支名称的glob,为合并到这些集成分支而计算的默认合并消息将在标题中省略“into”。

具有空值的元素可用于清除从先前配置项累积的globs列表。当没有定义merge.suppressDest变量时,master的默认值用于向后兼容性。

merge.renameLimit

合并过程中重命名检测的详尽部分中要考虑的文件数。如果未指定,默认值为diff.renameLimit。如果既没有指定merge.renameLimit也没有指定diff.renameLimit,则当前默认为7000。如果重命名检测关闭,则此设置无效。

merge.renames

Git是否检测到重命名。如果设置为“false”,则禁用重命名检测。如果设置为“true”,则启用基本重命名检测。默认值为diff.renames的值。

merge.directoryRenames

Git是否检测到目录重命名,影响合并时添加到历史一侧目录的新文件在历史另一侧重命名该目录时发生的情况。如果merge.directoryRenames设置为“false”,则禁用目录重命名检测,这意味着这些新文件将留在旧目录中。如果设置为“true”,则启用目录重命名检测,这意味着这些新文件将被移动到新目录中。如果设置为“冲突”,将报告此类路径冲突。如果merge.renames为false,则忽略merge.directoryRenames并将其视为false。默认为“冲突”。

merge.renormalize

告诉Git,存储库中文件的规范表示形式随着时间的推移发生了变化(例如,早期提交的记录文本文件具有CRLF行结尾,但最近提交的文件使用LF行结尾)。在这样的存储库中,Git可以在执行合并之前将提交中记录的数据转换为规范形式,以减少不必要的冲突。有关更多信息,请参见gitattributes(5)中的“合并具有不同签入/签出属性的分支”部分。

merge.stat

是否在合并结束时打印ORIG_HEAD和合并结果之间的差异。默认为真。

merge.autoStash

当设置为true时,在操作开始前自动创建临时存储项,并在操作结束后应用它。这意味着您可以在脏工作树上运行merge。但是,要小心使用:成功合并后的最后一个存储应用程序可能会导致不重要的冲突。这个选项可以被git-merge(1)的-no-autostash和-autostash选项覆盖。默认为false。

merge.tool

控制git-mergetool(1)使用哪个合并工具。下面的列表显示了有效的内置值。任何其他值都被视为自定义合并工具,并要求定义相应的mergetool.cmd变量。

merge.guitool

控制指定-g/-gui标志时git-mergetool(1)使用哪个合并工具。下面的列表显示了有效的内置值。任何其他值都被视为自定义合并工具,并要求定义相应的mergetool.cmd变量。

BC

BC3

BC4

codecompare

deltawalker

扩散

扩散

ecmerge

出来

examdiff

吉菲

gvimdiff

gvimdiff1

gvimdiff2

gvimdiff3

kdiff3

融合

nvimdiff

nvimdiff1

nvimdiff2

nvimdiff3

opendiff

p4merge

smerge

tkdiff

tortoisemerge

vimdiff

vimdiff1

vimdiff2

vimdiff3

Winmerge

xxdiff

merge.verbosity

控制递归合并策略显示的输出量。如果检测到冲突,级别0只输出最终错误信息。级别1仅输出冲突,2输出冲突和文件更改。5级及以上输出调试信息。默认为二级。可以由GIT_MERGE_verbosity环境变量覆盖。

合并.名称

定义自定义低级合并驱动程序的可读名称。详见gitattributes(5)。

合并驱动

定义实现自定义低级合并驱动程序的命令。详见gitattributes(5)。

合并。递归

命名在执行公共祖先之间的内部合并时要使用的低级合并驱动程序。详见gitattributes(5)。

mergetool.路径

重写给定工具的路径。这在您的工具不在PATH中的情况下很有用。

mergetool..cmd

指定调用指定合并工具的命令。指定的命令在shell中用下列变量计算:Base是包含要合并的文件的公共基的临时文件的名称(如果可用);LOCAL是包含当前分支上的文件内容的临时文件的名称;REMOTE是包含来自要合并的分支的文件内容的临时文件的名称;MERGED包含合并工具应将成功合并结果写入的文件的名称。

mergetool..hideResolved

允许用户重写特定工具的全局mergetool.hideResolved值。See mergetool.hideResolved for the full description.

mergetool..trustExitCode

对于自定义合并命令,指定是否可以使用合并命令的退出代码来确定合并是否成功。如果未将其设置为真,则检查合并目标文件时间戳,并且如果文件已被更新则假定合并已经成功,否则提示用户指示合并成功。

mergetool.meld.hasOutput

旧版本的meld不支持-output选项。Git将尝试通过检查meld-help的输出来检测meld是否支持-output。配置mergetool.meld.hasOutput将使Git跳过这些检查并使用配置的值。将mergetool.meld.hasOutput设置为true告诉Git无条件地使用-output选项,false避免使用-output。

mergetool.meld.useAutoMerge

当给出-auto-merge时,meld将自动合并所有不冲突的部分,突出显示冲突的部分并等待用户的决定。将mergetool.meld.useAutoMerge设置为true将告诉Git无条件地使用meld的-auto-merge选项。将此值设置为auto将使git检测是否支持-auto-merge,并且仅在可用时使用-auto-merge。值false完全避免使用-auto-merge,它是默认值。

mergetool.hideResolved

在合并过程中,Git将自动解决尽可能多的冲突,并在无法解决的任何冲突周围写入包含冲突标记的MERGED文件;LOCAL和REMOTE通常表示Git冲突解决之前的文件版本。此标志将导致LOCAL和REMOTE被重写,以便仅将未解决的冲突呈现给合并工具。可以通过mergetool.hideResolved配置变量对每个工具进行配置。默认为false。

mergetool.keepBackup

执行合并后,带有冲突标记的原始文件可以保存为扩展名为.orig的文件。如果将此变量设置为false,则不保留此文件。默认值为true(即保留备份文件)。

mergetool.keepTemporaries

当调用自定义合并工具时,Git使用一组临时文件传递给该工具。如果工具返回错误,并且这个变量被设置为true,那么这些临时文件将被保留,否则它们将在工具退出后被删除。默认为false。

mergetool.writeToTemp

默认情况下,Git在工作树中写入冲突文件的临时BASE、LOCAL和REMOTE版本。当设置为true时,Git将尝试使用这些文件的临时目录。默认为false。

mergetool.prompt

每次调用合并解析程序前提示。

notes.mergeStrategy

在解决注释冲突时默认选择哪种合并策略。必须是手动、我们的、他们的、联合或cat_sort_uniq之一。默认为手动。有关每种策略的更多信息,请参见git-notes(1)的“notes merge strategies”部分。

注:合并策略

将注释合并到refs/notes/时选择哪种合并策略。这覆盖了更一般的“notes.mergeStrategy”。有关可用策略的更多信息,请参阅git-notes(1)中的“notes合并策略”部分。

notes.displayRef

显示提交消息时显示注释的(完全限定的)重新命名。这个变量的值可以设置为glob,在这种情况下,将显示所有匹配的refs的注释。您还可以多次指定此配置变量。将对不存在的refs发出警告,但与任何refs不匹配的glob将被悄悄地忽略。

可以用GIT_NOTES_DISPLAY_REF环境变量重写此设置,该环境变量必须是引用或全局的冒号分隔列表。

有效值“core.notesRef”(可能被GIT_NOTES_REF覆盖)也被隐式添加到要显示的refs列表中。

notes.rewrite.

当用(当前修改或重基)重写提交时,这个变量被设置为true,Git会自动将笔记从原始文件复制到重写的提交文件中。默认值为true,但请参见下面的“notes.rewriteRef”。

notes.rewriteMode

在重写期间复制便笺时(请参见“notes.rewrite.”选项),确定如果目标提交已经有便笺,该怎么办。必须是覆盖、连接、cat_sort_uniq或忽略之一。默认连接。

这个设置可以用GIT_NOTES_REWRITE_MODE环境变量覆盖。

notes.rewriteRef

在重写期间复制注释时,指定应复制其注释的(完全限定的)引用。Ref可以是一个整体,在这种情况下,所有匹配Ref中的注释都将被复制。您还可以多次指定此配置。

没有默认值;必须配置此变量以启用便笺重写。将其设置为refs/notes/commits以启用对默认commit notes的重写。

可以用GIT_NOTES_REWRITE_REF环境变量重写此设置,该环境变量必须是引用或全局的冒号分隔列表。

pack.window

当命令行上没有给出窗口大小时,git-pack-objects(1)使用的窗口大小。默认为10。

pack.depth

当命令行上没有给出最大深度时,git-pack-objects(1)使用的最大delta深度。默认为50。最大值为4095。

pack.windowMemory

当命令行没有限制时,git-pack-objects(1)中每个线程为pack窗口内存消耗的最大内存大小。该值可以用“k”、“m”或“g”后缀。当未配置(或显式设置为0)时,将没有限制。

pack.compression

整数-1.9,表示包文件中对象的压缩级别。-1是zlib默认值。0表示没有压缩,1..9是各种速度/大小的权衡,9是最慢的。如果未设置,则默认为core.compression。如果没有设置,则默认为-1,zlib默认值,这是“速度和压缩之间的默认折衷(目前相当于6级)”。

注意,更改压缩级别不会自动重新压缩所有现有对象。您可以通过将-F选项传递给git-repack(1)来强制重新压缩。

pack.allowPackReuse

当为真时,并且启用了可达性位图时,包对象将尝试逐字发送部分位映射包文件。这可以减少内存和CPU的使用来提供读取服务,但可能会导致发送稍大的包。默认为true。

pack.island

配置一组delta岛的扩展正则表达式。详见git-pack-objects(1)中的“delta islands”。

pack.islandCore

指定一个岛名,该岛名首先要打包它的对象。这将在一个包的前面创建一种伪包,这样来自指定岛的对象有望更快地复制到应该提供给请求这些对象的用户的任何包中。在实践中,这意味着指定的岛应该可能对应于回购中最常见的克隆。参见git-pack-objects(1)中的“delta islands”。

pack.deltaCacheSize

将增量写入包之前,用于缓存git-pack-objects(1)中的增量的最大内存(以字节为单位)。该缓存用于通过在找到所有对象的最佳匹配后不必重新计算最终delta结果来加速写入对象阶段。在内存不足的机器上重新打包大型存储库可能会受到严重影响,尤其是当这个缓存将系统推入交换时。值为0表示无限制。可以使用1字节的最小大小来虚拟地禁用该高速缓存。默认为256 MIB。

pack.deltaCacheLimit

增量的最大大小,缓存在git-pack-objects(1)中。该缓存用于通过在找到所有对象的最佳匹配后不必重新计算最终delta结果来加速写入对象阶段。默认为1000。最大值为65535。

pack.threads

指定在搜索最佳增量匹配时生成的线程数。这需要使用pthreads编译git-pack-objects(1),否则此选项将被忽略并发出警告。这意味着减少多处理器机器上的打包时间。然而,增量搜索窗口所需的内存量乘以线程的数量。指定0将使Git自动检测CPU的数量,并相应地设置线程的数量。

pack.indexVersion

指定默认包索引版本。对于1.5.2之前的Git版本使用的遗留包索引,有效值为1,对于容量大于4GB的包以及防止损坏包重新打包的适当保护的新包索引,有效值为2。版本2是默认值。请注意,版本2是强制的,只要相应的包大于2GB,这个配置选项就会被忽略。

如果您有一个不理解版本2*.IDX文件的旧Git,则克隆或获取一个非本机协议(例如“http”),该协议将从另一端复制*.pack文件和相应的*.IDX文件,这可能会给您提供一个无法使用旧版本Git访问的存储库。但是,如果*.pack文件小于2GB,则可以在*.pack文件上使用git-index-pack(1)来重新生成*.IDX文件。

pack.packSizeLimit

包装的最大尺寸。此设置仅在重新打包时影响对文件的打包,即git://协议不受影响。它可以被git-repack(1)的-max-pack-size选项覆盖。达到这个极限会导致创建多个包文件。

注意,这个选项很少有用,并且可能导致磁盘上的总大小更大(因为Git不会存储包之间的增量),以及运行时性能更差(多个包中的对象查找比单个包慢,并且像可达性位图这样的优化无法处理多个包)。

如果您需要使用较小的包文件主动运行Git(例如,因为您的文件系统不支持大文件),此选项可能会有所帮助。但是,如果您的目标是通过支持有限大小的介质(例如,无法存储整个存储库的可移动介质)传输包文件,那么创建单个大型包文件并使用通用多卷归档工具(例如,Unix拆分)对其进行拆分可能会更好。

允许的最小尺寸限制为1 MIB。违约是无限的。支持k、m或g的公共单元后缀。

pack.useBitmaps

当为真时,当打包到stdout时(例如,在获取的服务器端),git将使用打包位图(如果可用)。默认为true。除非正在调试包位图,否则通常不需要关闭此功能。

pack.useSparse

当为true时,当-revs选项出现时,git将默认在git pack-objects中使用-稀疏选项。该算法只遍历出现在引入新对象的路径中的树。这在计算包以发送小更改时具有显著的性能优势。但是,如果包含的提交包含某些类型的直接重命名,则可能会将额外对象添加到包文件中。违约为真。

pack.preferBitmapTips

当选择哪一个提交将接收位图时,在“选择窗口”中,在任何引用的尖端提交都是该配置的任何值的后缀,而不是任何其他提交。

注意,将此配置设置为refs/foo并不意味着必须选择refs/foo/bar和refs/foo/baz提示处的提交。这是因为提交是从一系列长度可变的窗口中为位图选择的。

如果在窗口中看到作为该配置任何值的后缀的任何引用的尖端处的提交,则它将立即优先于该窗口中的任何其他提交。

pack.writeBitmaps (deprecated)

This is a deprecated synonym for repack.writeBitmaps.

pack.writeBitmapHashCache

当为真时,git将在位图索引中包括一个“哈希缓存”部分(如果写了一个)。该缓存可以用于提供git的delta试探法,潜在地导致位映射和非位映射对象之间的更好delta(例如,当在较旧的位映射包和自上一个gc以来已经推送的对象之间提供获取时)。缺点是每个磁盘空间对象消耗4个字节。默认为true。

pack.writeReverseIndex

当为真时,git将写入相应的.rev文件(参见:documentation/technical/pack-format.txt),它在除了git-fast-import(1)和批量签入机制之外的所有地方写入每个新的packfile。默认为false。

寻呼机。

如果该值是布尔值,则在写入tty时打开或关闭特定Git子命令输出的分页。否则,使用由寻呼机值指定的寻呼机打开子命令的分页。如果在命令行上指定了-paginate或-no-pager,则它优先于此选项。要禁用所有命令的分页,请将core.pager或GIT_PAGER设置为cat。

很漂亮。

--pright=format字符串的别名,如git-log(1)中指定的。这里定义的任何别名都可以像内置的漂亮格式一样使用。例如,运行git config pretty.changelog"format:*"%H%s"将导致调用git日志--play=changelog等效于运行git日志"-play=format:*%H%s"。注意,名称与内置格式相同的别名将被忽略。

protocol.allow

如果设置了,则为所有没有显式策略(协议.允许)协议提供用户定义的默认策略。默认情况下,如果未设置,则已知安全协议(http、https、git、ssh、file)具有总是默认策略,已知危险协议(ext)具有从不默认策略,并且所有其它协议具有用户默认策略。支持政策:

总是-协议总是可以使用的。

从不-协议永远不能被使用。

用户协议只能在GIT_PROTOCOL_FROM_USER未设置或值为1时使用。当您希望用户可以直接使用协议,但不希望在没有用户输入(例如递归子模块初始化)的情况下执行克隆/获取/推送命令的命令使用该协议时,应使用该策略。

协议。允许

通过克隆/获取/推送命令设置协议使用的策略。有关可用的策略,请参见上面的protocol.allow。

git当前使用的协议名称为:

文件:任何本地基于文件的路径(包括文件://)URL或本地路径)

Git:直接TCP连接(或代理,如果配置)上的匿名git协议

ssh:git over ssh(包括host:path语法、ssh://等)。

HTTP:git over http,“智能http”和“哑http”。注意,这并不包括https;如果您想同时配置这两者,则必须单独进行配置。

任何外部助手通过其协议来命名(例如,使用hg来允许git-remote-hg助手)

protocol.version

如果设置了,客户端将尝试使用指定的协议版本与服务器进行通信。如果服务器不支持它,则通信返回到版本0。如果未设置,则默认值为2。支持版本:

0-原始有线协议。

1-原始有线协议,在服务器的初始响应中添加了一个版本字符串。

2-有线协议版本2。

pull.ff

默认情况下,当合并当前提交的后代提交时,Git不会创建额外的合并提交。相反,当前分支的尖端是快进的。当设置为false时,这个变量告诉Git在这种情况下创建一个额外的合并提交(相当于从命令行提供-no-ff选项)。当设置为“仅”时,只允许这种快进合并(相当于从命令行提供-ff-only选项)。此设置在拉动时覆盖merge.ff。

pull.rebase

当为真时,将分支重新设置在提取的分支的顶部,而不是在运行“git pull”时从默认远程合并默认分支。在每个分行的基础上,参见“分行.rebase”的设置。

当合并(或仅为m)时,将-rebase-merges选项传递给git rebase,以便将本地合并提交包含在rebase中(详见git-rebase(1)))。

当preserve(或仅p)时,也可以将-preserve-merges传递给git rebase,这样本地提交的合并提交不会因运行git pull而变平。

当值是交互式的(或仅为i)时,rebase将以交互式模式运行。

注意:这可能是一个危险的操作;除非您理解其含义,否则不要使用它(详见git-rebase(1))。

pull.octopus

同时拉取多个分支时使用的默认合并策略。

pull.twohead

拉单个分支时使用的默认合并策略。

push.default

定义如果没有给出refspec(无论是来自命令行、config还是其他地方),git push应该采取的操作。不同的值非常适合特定的工作流;例如,在纯中央工作流中(即获取源等于推送目的地),上游可能是您想要的。可能的值为:

什么都没有-除非给出了refspec,否则不要推出任何东西(错误)。这主要是为了那些希望通过总是明确的方式来避免错误的人。

current-push当前分支以更新接收端具有相同名称的分支。在中央和非中央工作流中工作。

上游-将当前分支推回到其更改通常集成到当前分支中的分支(称为@{上游})。这种模式只有在您推送到您通常会从中提取的相同存储库(即中央工作流)时才有意义。

跟踪-这是一个不推荐的上游同义词。

simple-将具有相同名称的当前分支推送到远程。

如果您正在处理集中的工作流(推送到您从中提取的相同存储库,通常是原始存储库),那么您需要使用相同的名称配置上游分支。

此模式是自Git 2.0以来的默认模式,是适合初学者的最安全选项。

匹配-推送两端具有相同名称的所有分支。这使得您正在推动的存储库记住将被推出的分支集合(例如,如果您总是将maint和master推送到那里而没有其他分支,则您推动的存储库将具有这两个分支,并且您的本地maint和master将被推送到那里)。

要有效地使用此模式,您必须确保在运行git push之前,您将推出的所有分支都准备好被推出,因为此模式的全部目的是允许您一次性推出所有分支。如果您通常只完成一个分支上的工作并推出结果,而其他分支未完成,则此模式不适合您。而且,这种模式不适合推入共享的中央存储库,因为其他人可能会在那里添加新的分支,或者更新您控制之外的现有分支的提示。

这曾经是默认值,但从Git 2.0开始就不是了(简单是新的默认值)。

push.followTags

如果默认设置为true enable-follow-tags选项。您可以在推送时通过指定-no-follow-tags来覆盖此配置。

push.gpgSign

可以设置为布尔值,或者如果被请求则设置为字符串。true值导致所有push都是GPG签名的,就像-signed被传递给git-push(1)一样。如果服务器支持,字符串if-asked会导致push被签名,就像-signed=if-asked被传递给git push一样。假值可以覆盖来自较低优先级配置文件的值。显式命令行标记总是覆盖此配置选项。

push.pushOption

当命令行没有给出-push-option=参数时,git push的行为就好像每个变量都以-push-option=的形式给出一样。

这是多值变量,并且空值可以在较高优先级配置文件(例如,储存库中的.git/config)中使用,以清除从较低优先级配置文件(例如,例如:。$HOME/.gitconfig)。

举例:

/etc/gitconfig

push.puspoption=a

push.puspoption=b

~/.gitconfig

push.puspoption=c

repo/.git/config

push.pushoption =

push.puspoption=b

这将导致仅B(A和C被清除)。

push.recurseSubmodules

确保要推送的修订所使用的所有子模块提交在远程跟踪分支上都可用。如果选中该值,则Git将验证在要推送的修订中更改的所有子模块提交是否在子模块的至少一个远程上可用。如果缺少任何提交,则推送将被中止,并以非零状态退出。如果该值是按需的,那么在要推送的修订中更改的所有子模块都将被推送。如果随需应变不能推动所有必要的修改,它也将被中止,并以非零状态退出。如果该值为no,则保留在推送时忽略子模块的默认行为。您可以在推送时通过指定--recurse-submodules=check|on-demand|no来覆盖此配置。如果未设置,则默认使用no,除非设置了submodule.recurse(在这种情况下,真值表示按需)。

push.useForceIfIncludes

如果设置为“true”,则相当于在命令行中将-force-if-includes指定为git-push(1)的选项。在推送时添加-no-force-if-includes将覆盖此配置设置。

push.negotiate

如果设置为“true”,则尝试减小通过几轮协商发送的包文件的大小,在这轮协商中,客户端和服务器试图找到共同的提交。如果“false”,Git将仅依赖于服务器的引用通告来查找共同提交。

rebase.backend

用于重基的默认后端。可能的选择是应用或合并。将来,如果合并后端获得应用后端的所有剩余功能,则此设置可能会变得未使用。

rebase.stat

是否显示自上次重定基以来上游发生了什么变化的diffstat。默认为假。

rebase.autoSquash

如果默认设置为true enable-autocquash选项。

rebase.autoStash

当设置为true时,在操作开始前自动创建临时存储项,并在操作结束后应用它。这意味着您可以在脏工作树上运行rebase。但是,要小心使用:成功重基后的最后一个存储应用程序可能会导致一些不重要的冲突。这个选项可以被git-rebase(1)的-no-autostash和-autostash选项覆盖。默认为false。

rebase.missingCommitsCheck

如果设置为“warn”,git rebase-i将在删除某些提交(例如删除一行)时打印警告,但rebase仍将继续。如果设置为“error”,它将打印上一个警告并停止rebase,然后可以使用git rebase-edit-todo来更正错误。如果设置为“忽略”,则不进行检查。若要在没有警告或错误的情况下删除提交,请使用todo列表中的drop命令。默认为“忽略”。

rebase.instructionFormat

git-log(1)中指定的格式字符串,在交互式重基期间用于todo列表。该格式将自动将长提交散列前置到该格式。

rebase.abbreviateCommands

如果设置为true,git rebase将在todo列表中使用缩写命令名,结果如下所示:

死亡蜜蜂承诺的在线

p fa1afe1下一次提交的在线

...

而不是:

选择死亡蜜蜂承诺的在线

选择fa1afe1下一次提交的在线

...

默认为false。

rebase.rescheduleFailedExec

自动重新安排失败的exec命令。这仅在交互模式下(或在提供-exec选项时)才有意义。这与指定-reschedule-failed-exec选项相同。

rebase.forkPoint

如果默认情况下设置为false set-no-fork-point选项。

receive.advertiseAtomic

默认情况下,git-receive-pack将向其客户端通告原子推送功能。如果不想通告此功能,请将此变量设置为false。

receive.advertisePushOptions

当设置为true时,git-receive-pack将向其客户端通告推送选项功能。默认为假。

receive.autogc

默认情况下,git-receive-pack在从git-push接收数据并更新refs后将运行“git-gc-auto”。您可以通过将这个变量设置为false来停止它。

receive.certNonceSeed

通过将此变量设置为字符串,git receive-pack将接受git push-signed,并通过使用HMAC保护的“nonce”来验证它,该nonce使用此字符串作为密钥。

receive.certNonceSlop

当git push-signed在这几秒钟内发送了一个带有“nonce”的push证书,该证书由服务于相同存储库的receive-pack发出,则将证书中的“nonce”导出到钩子(而不是receive-pack要求发送方包括的内容)。这可以允许在接收前和接收后更容易地写入检查。他们不能检查GIT_PUSH_CERT_NONCE_SLOP环境变量,该环境变量记录nonce过期多少秒来决定他们是否想要接受证书,而是只能检查GIT_PUSH_CERT_NONCE_STATUS是否正常。

receive.fsckObjects

如果设置为true,git-receive-pack将检查所有接收到的对象。有关选中的内容,请参阅transfer.fsckObjects。默认为false。如果未设置,则使用transfer.fsckObjects的值。

receive.fsck.

其作用类似于fsck,但由git-receive-pack(1)代替git-fsck(1)使用。详见fsck.文档。

receive.fsck.skipList

其作用类似于fsck.skipList,但git-receive-pack(1)使用git-fsck(1)。详见fsck.skipList文档。

receive.keepAlive

在从客户端接收到包之后,receive-pack在处理包时可能不会产生输出(如果指定了-quiet),从而导致一些网络放弃TCP连接。设置此选项后,如果receive-pack在此阶段没有为receive.keepAlive秒发送任何数据,它将发送一个短的keepalive数据包。默认值为5秒;设置为0以完全禁用keepalive。

receive.unpackLimit

如果在推送中接收到的对象的数量低于这个限制,则这些对象将被解包成松散的对象文件。然而,如果接收到的对象的数目等于或超过该限制,则在添加任何缺失的增量基之后,接收到的包将被存储为包。从push存储包可以使push操作更快地完成,尤其是在较慢的文件系统上。如果未设置,则使用transfer.unpackLimit的值。

receive.maxInputSize

如果传入包流的大小大于此限制,则git-receive-pack将出错,而不是接受包文件。如果没有设置或设置为0,则大小是无限的。

receive.denyDeletes

如果设置为true,git-receive-pack将拒绝删除该引用引用更新。 使用此选项可防止通过推送删除此类引用。

receive.denyDeleteCurrent

如果设置为true,git-receive-pack将拒绝删除非裸存储库当前签出分支的引用更新。

receive.denyCurrentBranch

如果设置为true或“reject”,git-receive-pack将拒绝对非裸存储库的当前签出分支的ref更新。这样的推是潜在的危险,因为它会使HEAD与索引和工作树失去同步。如果设置为“警告”,则打印向stderr推送的警告,但允许继续推送。如果设置为false或“忽略”,则允许无消息推送。默认为“拒绝”。

另一个选项是“updateInstead”,如果推入当前分支,它将更新工作树。当一方不容易通过交互式ssh访问时(例如,现场网站,因此要求工作目录是干净的),该选项用于同步工作目录。当在VM内部开发以测试和修复不同操作系统上的代码时,这种模式也很方便。

默认情况下,如果工作树或索引与HEAD有任何不同,“updateInstead”将拒绝推送,但推送到签出挂钩可以用于自定义此操作。见githooks(5)。

receive.denyNonFastForwards

如果设置为true,git-receive-pack将拒绝不是快进ref更新。使用此选项可防止通过推送进行此类更新,即使该推送是强制的。这个配置变量是在初始化共享存储库时设置的。

receive.hideRefs

此变量与transfer.hideRefs相同,但仅适用于receive-pack(因此影响推送,但不影响获取)。通过git push更新或删除隐藏引用的尝试将被拒绝。

receive.procReceiveRefs

这是一个多值变量,定义引用前缀以匹配receive-pack中的命令。匹配前缀的命令将由外部钩子“proc-receive”执行,而不是内部execute_commands函数。如果未定义此变量,则永远不会使用“proc-receive”钩子,所有命令将由内部execute_commands函数执行。

例如,如果这个变量被设置为“refs/for”,则推送到诸如“refs/for/master”之类的引用将不会创建或更新名为“refs/for/master”的引用,但可以通过运行钩子“proc-receive”直接创建或更新拉取请求。

可以在值的开头提供可选的修饰符,以过滤特定动作的命令:创建(a)、修改(m)、删除(d)。A!可以被包括在修饰符中以否定引用前缀条目。例如:

git config --system --add receive.procReceiveRefs ad:refs/heads

git config --system --add receive.procReceiveRefs !:refs/heads

receive.updateServerInfo

如果设置为true,则在从git-push接收数据并更新refs之后,git-receive-pack将运行git-update-server-info。

receive.shallowUpdate

如果设置为true,.git/shallow可以在新refs需要新shallow root时更新。否则这些裁判将被拒绝。

remote.pushDefault

默认情况下要推送到的远程。覆盖所有分行的分行。远程,并被分行覆盖。特定分行的pushRemote。

远程.url

远程存储库的URL。参见git-fetch(1)或git-push(1)。

遥控。推

远程存储库的推送URL。参见git-push(1)。

远程代理

对于需要curl(http、https和ftp)的远程设备,该远程设备使用的到代理的URL。设置为空字符串以禁用该远程设备的代理。

远程.proxyAuthMethod

对于需要curl的remote(http、https和ftp),使用该方法对正在使用的代理进行身份验证(可能在remote.proxy中设置)。See http.proxyAuthMethod.

远程获取

git-fetch(1)的默认设置“refspec”。参见git-fetch(1)。

遥控。推

git-push(1)的默认设置“refspec”。参见git-push(1)。

遥控.镜子

如果为真,则推到此遥控器将自动表现为命令行上给出的-mirror选项。

remote..skipDefaultUpdate

如果为真,则在使用git-fetch(1)或git-remote(1)的update子命令更新时,默认情况下将跳过此远程。

remote..skipFetchAll

如果为真,则在使用git-fetch(1)或git-remote(1)的update子命令更新时,默认情况下将跳过此远程。

远程接收包

按下时在远程侧执行的默认程序。参见git-push(1)的选项-receive-pack。

远程.上传包

获取时在远程端执行的默认程序。参见git-fetch-pack(1)的选项-upload-pack。

远程.tagOpt

将此值设置为-no-tags将禁用从远程获取时的自动标记跟踪。将它设置为-tags将从远程获取每个标记,即使它们不能从远程分支头访问。将这些标志直接传递给git-fetch(1)可以覆盖该设置。请参阅git-fetch(1)的选项-tags和-no-tags。

远程.vcs

将其设置为一个值将导致Git通过git-remote-helper与remote进行交互。

远程.修剪

当设置为true时,默认情况下从该远程获取还将删除远程上不再存在的任何远程跟踪引用(就像命令行上给出了-prune选项)。覆盖fetch.prune设置(如果有)。

remote..pruneTags

当设置为true时,如果剪枝通常通过remote.prune、fetch.prune或-prune激活,则默认情况下从该远程获取还将删除远程上不再存在的任何本地标记。Overrides fetch.pruneTags settings, if any.

另参见git-fetch(1)的远程.修剪和修剪部分。

远程.承诺人

当设置为true时,此远程将用于获取承诺对象。

remote..partialclonefilter

从此承诺器远程获取时将应用的筛选器。

遥控器。

由“git remote update”获取的remote列表。参见git-remote(1)。

repack.useDeltaBaseOffset

默认情况下,git-repack(1)创建使用delta基偏移量的包。如果您需要与版本1.4.4之前的Git共享存储库,可以直接共享,也可以通过一个哑协议(如http)共享,那么您需要将该选项设置为“false”并重新打包。通过本机协议从旧Git版本访问不受此选项的影响。

repack.packKeptObjects

如果设置为true,则使git repack就像传递了-pack-keeped-objects一样。详见git-repack(1)。通常默认为false,但如果正在写入位图索引(通过-write-bitmap-index或repack.writeBitmap),则为true。

repack.useDeltaIslands

如果设置为true,则使git repack的行为就像传递了-delta-islands一样。默认为false。

repack.writeBitmaps

当为真时,当将所有对象打包到磁盘时(例如,当运行git repack-a时),git将写入位图索引。这个索引可以加快为克隆和获取创建的后续包的“计数对象”阶段,代价是在初始重新包上花费一些磁盘空间和额外的时间。如果创建了多个包文件,则此操作无效。裸回购默认为true,否则为false。

rerere.autoUpdate

当设置为true时,git-rere会在使用先前记录的解决方案清晰地解决冲突之后,使用结果内容更新索引。默认为false。

rerere.enabled

激活已解决冲突的记录,以便再次遇到相同的冲突块时,可以自动解决这些冲突块。默认情况下,如果$GIT_DIR下有rr缓存目录,例如如果存储库中以前使用过“rere”,则git-rere(1)将被启用。

reset.quiet

当设置为true时,git reset将默认为-quiet选项。

sendemail.identity

配置标识。当给定值时,将使sendemail.subset中的值优先于SendEmail部分中的值。默认标识是sendemail.identity的值。

sendemail.smtpEncryption

参见git-send-email(1)的描述。注意,此设置不受身份机制的约束。

sendemail.smtpsslcertpath

ca证书的路径(目录或单个文件)。将其设置为空字符串以禁用证书验证。

sendemail..*

下面找到的SendEmail.*参数的特定身份版本,在通过命令行或sendemail.identity选择此身份时优先于这些版本。

sendemail.aliasesFile

sendemail.aliasFileType

sendemail.annotate

sendemail.bcc

sendemail.cc

sendemail.ccCmd

sendemail.chainReplyTo

sendemail.confirm

sendemail.envelopeSender

sendemail.from

sendemail.multiEdit

sendemail.signedoffbycc

sendemail.smtpPass

sendemail.suppresscc

sendemail.suppressFrom

sendemail.to

sendemail.tocmd

sendemail.smtpDomain

sendemail.smtpServer

sendemail.smtpServerPort

sendemail.smtpServerOption

sendemail.smtpUser

sendemail.thread

sendemail.transferEncoding

sendemail.validate

sendemail.xmailer

参见git-send-email(1)的描述。

sendemail.signedoffcc (deprecated)

Deprecated alias for sendemail.signedoffbycc.

sendemail.smtpBatchSize

每个连接要发送的消息数,之后将发生重新登录。如果值为0或未定义,则在一个连接中发送所有消息。另请参阅git-send-email(1)的-batch-size选项。

sendemail.smtpReloginDelay

重新连接到smtp服务器前等待几秒钟。另请参阅git-send-email(1)的-relogin-delay选项。

sendemail.forbidSendmailVariables

为了避免常见的错误配置错误,如果存在“sendmail”的任何配置选项,git-send-email(1)将中止并发出警告。设置此变量以绕过检查。

sendpack.sideband

允许禁用send-pack的边带-64k功能,即使当它被服务器通告时也是如此。可以绕过git for windows实现和dump git协议中的限制。默认为true。

sequence.editor

git rebase-i用于编辑rebase指令文件的文本编辑器。该值是指在使用shell时由shell解释的。它可以被GIT_SEQUENCE_EDITOR环境变量覆盖。如果未配置,则使用默认的提交消息编辑器。

showBranch.default

git-show-branch(1)的默认分支集合。参见git-show-branch(1)。

splitIndex.maxPercentChange

当使用拆分索引特征时,这指定与写入新的共享索引之前拆分索引和共享索引两者中的条目的总数相比,拆分索引可以包含的条目的百分比。该值应该在0和100之间。如果值是0,则总是写入新的共享索引,如果值是100,则从不写入新的共享索引。默认情况下,该值为20,因此如果拆分索引中的条目数大于条目总数的20%,则写入新的共享索引。参见git-update-index(1)。

splitIndex.sharedIndexExpire

当使用拆分索引功能时,当创建新的共享索引文件时,将删除自该变量指定的时间以来未被修改的共享索引文件。值“now”立即过期所有条目,而“never”则完全抑制过期。默认值为“2.week.ago”。请注意,每次基于共享索引文件创建新的拆分索引文件或从中读取新的拆分索引文件时,都会认为对共享索引文件进行了修改(以过期为目的)。参见git-update-index(1)。

ssh.variant

默认情况下,Git根据配置的SSH命令的基名称(使用环境变量GIT_SSH或GIT_SSH_COMMAND或config设置核心.sshCommand进行配置)确定要使用的命令行参数。如果basename无法识别,Git将尝试通过首先调用带有-G(打印配置)选项的已配置SSH命令来检测对OpenSSH选项的支持,然后将使用OpenSSH选项(如果成功)或除了主机和远程命令之外没有选项(如果失败)。

可以设置config变量ssh.variant以覆盖此检测。有效值有ssh(使用OpenSSH选项)、plink、putty、tortoiseplink、simple(除了主机和远程命令之外没有选项)。可以使用auto值显式地请求默认自动检测。任何其他值都被视为ssh。这个设置也可以通过环境变量GIT_SSH_VARIANT重写。

用于每个变体的当前命令行参数如下:

SSH-[-p端口][-4][-6][-o选项][username@]host命令

Simple-[username@]host命令

plink或putty-[-P端口][-4][-6][username@]host命令

tortoiseplink-[-P端口][-4][-6]-batch[username@]host命令

除了简单的变体之外,随着git获得新的特性,命令行参数可能会发生变化。

status.relativePaths

默认情况下,git-status(1)显示相对于当前目录的路径。将此变量设置为false将显示相对于存储库根的路径(这是在v1.5.4之前Git的默认值)。

status.short

在git-status(1)中设置为true以默认启用-short。选项-no-short优先于此变量。

status.branch

在git-status(1)中设置为true以默认启用-branch。选项-no-branch优先于此变量。

status.aheadBehind

在git-status(1)中,对于非瓷器状态格式,默认情况下设置为true以启用-ahead和false以启用-no-ahead。默认为true。

status.displayCommentPrefix

如果设置为true,git-status(1)将在每个输出行之前插入注释前缀(从core.comments Char开始,即默认情况下为#)。这是Git 1.8.4和以前版本中git-status(1)的行为。默认为false。

status.renameLimit

在git-status(1)和git-commit(1)中执行重命名检测时要考虑的文件数。默认值为diff.renameLimit。

status.renames

Git是否以及如何检测git-status(1)和git-commit(1)中的重命名。如果设置为“false”,则禁用重命名检测。如果设置为“true”,则启用基本重命名检测。如果设置为“副本”或“副本”,Git也将检测副本。默认值为diff.renames的值。

status.showStash

如果设置为true,git-status(1)将显示当前存储的条目数。默认为false。

status.showUntrackedFiles

默认情况下,git-status(1)和git-commit(1)显示当前未被Git跟踪的文件。只包含未跟踪文件的目录只显示目录名。显示未跟踪的文件意味着Git需要lstat()整个存储库中的所有文件,这在某些系统上可能会很慢。因此,这个变量控制命令如何显示未跟踪的文件。可能的值为:

否-不显示未跟踪的文件。

正常-显示未跟踪的文件和目录。

All-还显示未跟踪目录中的单个文件。

如果未指定此变量,则默认为正常。这个变量可以用git-status(1)和git-commit(1)的-u|-untracked-files选项重写。

status.submoduleSummary

默认为false。如果将其设置为非零数字或true(等于-1或无限数字),则将启用子模块摘要,并将显示修改后的子模块的提交摘要(参见git-submodule(1)的-summart选项)。请注意,当diff.ignoreSubmodules被设置为全部或仅对于子模块.忽略=全部的子模块,汇总输出命令将被抑制。该规则唯一的例外是状态和提交将显示分段子模块更改。要查看忽略子模块的摘要,您可以使用--忽略-submodules=dirty命令行选项或git submodule summary命令,该命令显示类似的输出,但不遵守这些设置。

stash.useBuiltin

未使用的配置变量。在Git版本2.22到2.26中使用,作为转义舱口,以支持stash的遗留shellscript实现。现在,总是使用C中的内置重写。设置此设置将发出警告,以警告任何剩余的用户,现在设置此设置将不起作用。

stash.showIncludeUntracked

如果设置为true,git stash show命令将显示一个stash条目的未跟踪文件。默认为false。请参阅git-stash(1)中对show命令的描述。

stash.showPatch

如果设置为true,则不带选项的git stash show命令将以补丁形式显示stash条目。默认为false。请参阅git-stash(1)中对show命令的描述。

stash.showStat

如果设置为true,则不带选项的git stash show命令将显示stash条目的diffstat。默认为true。请参阅git-stash(1)中对show命令的描述。

子模块.url

子模块的URL。这个变量通过git子模块init从.gitmodules文件复制到git config。用户可以在通过git子模块更新获取子模块之前更改配置的URL。如果没有设置子模块.active或子模块.active,则该变量的存在被用作回退,以指示该子模块是否对git命令感兴趣。详见git-submodule(1)和gitmodules(5)。

子模块.更新

通过git子模块更新来更新子模块的方法,这是唯一受影响的命令,其他命令如git checkout-recurse-submodules不受影响。它的存在是出于历史原因,当时git子模块是唯一与子模块交互的命令;submodule.active和pull.rebase等设置更具体。它由gitmodules(5)文件中的git子模块init填充。参见git-submodule(1)中更新命令的说明。

子模块.分行

子模块的远程分支名称,由git子模块update-remote使用。设置此选项以覆盖在.gitmodules文件中找到的值。详见git-submodule(1)和gitmodules(5)。

submodule..fetchRecurseSubmodules

此选项可用于控制此子模块的递归获取。它可以通过使用-[no-]recurse-submodules命令行选项“git fetch”和“git pull”来重写。此设置将覆盖gitmodules(5)文件中的设置。

子模块.忽略

定义在什么情况下“git status”,diff系列显示修改后的子模块。当设置为“全部”时,它将永远不会被认为是修改的(但是当它被分段时,它仍然会显示在状态和提交的输出中),“脏”将忽略对子模块工作树的所有更改,并且只考虑子模块的HEAD和在超级项目中记录的提交之间的差异。“untracked”还会让工作树中带有修改后的跟踪文件的子模块显示出来。使用“none”(未设置此选项时为默认值)也会显示工作树中未跟踪文件已更改的子模块。此设置将覆盖.gitmodules中为该子模块创建的任何设置,可以通过使用“-忽略-子模块”选项在命令行上覆盖这两个设置。git子模块命令不受此设置的影响。

子模块.激活

布尔值,指示git命令是否对子模块感兴趣。此配置选项优先于子模块.active配置选项。详见gitsubmodules(7)。

submodule.active

一个重复字段,它包含一个路径规范,用于匹配子模块的路径,以确定git命令是否对子模块感兴趣。详见gitsubmodules(7)。

submodule.recurse

一个布尔值,指示命令是否默认启用-recurse-submodules选项。适用于除克隆和ls文件外的所有支持此选项的命令(签出、获取、grep、pull、push、read-tree、reset、restore和switch)。默认为false。当设置为true时,可以通过-no-recurse-submodules选项停用它。注意,一些缺少此选项的Git命令可能会调用受submodule.recurse影响的上述命令;例如,git远程更新将调用git fetch,但没有-no-recurse-submodules选项。对于这些命令,一个变通方法是使用git-c submodule.recurse=0临时更改配置值。

submodule.fetchJobs

指定同时获取/克隆的子模块的数量。正整数允许并行获取的子模块的数量达到该数量。值为0将给出一些合理的默认值。如果未设置,则默认为1。

submodule.alternateLocation

指定在克隆子模块时子模块如何获得备用模块。可能的值是no,superproject。默认情况下假设为no,它不添加引用。当该值设置为超级项目时,要克隆的子模块计算其替代项相对于超级项目替代项的位置。

submodule.alternateErrorStrategy

指定如何通过子模块.alterateLocation计算子模块的替换项来处理错误。可能的值是忽略,信息,死亡。违约就是死亡。请注意,如果设置为忽略或info,并且计算的替代项出现错误,则克隆将继续进行,就好像没有指定替代项一样。

tag.forceSignAnnotated

一个布尔值,用于指定创建的带注释的标记是否应该是GPG签名的。如果在命令行上指定了-annotate,则它优先于此选项。

tag.sort

当git-tag(1)显示时,这个变量控制标签的排序顺序。如果没有提供“-sort=”选项,这个变量的值将被用作默认值。

tag.gpgSign

用于指定是否所有标记都应该是GPG签名的布尔值。在自动脚本中运行时使用此选项可能会导致大量标记被签名。因此,使用代理可以方便地避免多次键入gpg密码短语。注意,此选项不影响“-u”或“-local-user=”选项启用的标记签名行为。

tar.umask

此变量可用于限制tar存档条目的权限位。默认为0002,它关闭世界写入位。特殊值“user”表示将使用归档用户的umask。参见umask(2)和git-archive(1)。

Trace2 config设置只能从系统和全局配置文件中读取;存储库本地配置文件和工作树配置文件以及-c命令行参数不受影响。

trace2.normalTarget

此变量控制正常目标目标。它可以被GIT_TRACE2环境变量覆盖。下表显示了可能的值。

trace2.perfTarget

此变量控制性能目标目标。它可以被GIT_TRACE2_PERF环境变量覆盖。下表显示了可能的值。

trace2.eventTarget

此变量控制事件目标目标。它可以被GIT_TRACE2_EVENT环境变量覆盖。下表显示了可能的值。

0或false-禁用目标。

1或真实-向STDERR提交。

[2-9]-写到已经打开的文件描述符。

-以附加模式写入文件。如果目标已经存在并且是一个目录,则跟踪将被写入给定目录下的文件(每个进程一个)。

AF_unix:[:]-写入Unix DomainSocket(在支持它们的平台上)。套接字类型可以是stream或Dgram;如果省略,Git将同时尝试这两种类型。

trace2.normalBrief

布尔值。当true time、文件名和行字段从正常输出中省略时。可以被GIT_TRACE2_BRIEF环境变量覆盖。默认为false。

trace2.perfBrief

布尔值。当真实时间时,PERF输出中省略文件名和行字段。可以被GIT_TRACE2_PERF_BRIEF环境变量覆盖。默认为false。

trace2.eventBrief

布尔值。当true time时,事件输出中省略文件名和行字段。可以被GIT_TRACE2_EVENT_BRIEF环境变量覆盖。默认为false。

trace2.eventNesting

整数。指定事件输出中嵌套区域的所需深度。将省略比该值深的区域。可以被GIT_TRACE2_EVENT_NESTING环境变量覆盖。默认为2。

trace2.configParams

以逗号分隔的“重要”配置设置模式列表,应记录在trace2输出中。例如,core.*,远程。*.url将导致trace2输出包含列出每个配置的远程的事件。可以被GIT_TRACE2_CONFIG_params环境变量覆盖。默认未设置。

trace2.envVars

应记录在trace2输出中的“重要”环境变量的逗号分隔列表。例如,GIT_HTTP_USER_AGENT、GIT_CONFIG将使trace2输出包含列出HTTP用户代理的重写和Git配置文件的位置的事件(假设设置了任何一个)。可以被GIT_TRACE2_ENV_VARS环境变量覆盖。默认未设置。

trace2.destinationDebug

布尔值。当跟踪目标目标无法打开写入时,Git将打印错误消息。默认情况下,这些错误将被抑制,跟踪将被静默禁用。可以被GIT_TRACE2_DST_DEBUG环境变量覆盖。

trace2.maxFiles

整数。当将跟踪文件写入目标目录时,如果超过这个数量的文件,则不要写入额外的跟踪。相反,编写一个哨兵文件,它将阻止对该目录的进一步跟踪。默认值为0,这将禁用此检查。

transfer.fsckObjects

当未设置fetch.fsckObjects或receive.fsckObjects时,将使用此变量的值。默认为false。

设置后,如果对象格式不正确或指向不存在的对象的链接,则获取或接收将中止。此外,还检查了各种其他问题,包括遗留问题(参见fsck)和潜在的安全问题,如。git目录或恶意的.gitmodules文件(详见v2.2.1和v2.17.1的发布说明)。在未来的版本中可能会添加其他的健全性和安全性检查。

在接收端,失败的fsckObjects将使这些对象无法访问,请参见git-receive-pack(1)中的“隔离环境”。在获取端,格式不正确的对象将在存储库中保持不被引用。

由于fetch.fsckObjects实现的非隔离性质,不能像receive.fsckObjects那样依赖fetch.fsckObjects来保持对象存储的干净。

当对象被解包时,它们被写入对象存储区,因此在某些情况下,即使“获取”失败,恶意对象也会被引入,但随后的“获取”成功,因为只有新的传入对象被检查,而不是那些已经写入对象存储区的对象。这种行为上的差异不应被依赖。将来,这样的对象也可能被隔离以进行“获取”。

目前,偏执狂需要找到某种方法来模仿隔离环境,如果他们希望得到与“推”相同的保护。例如,在内部镜像的情况下,分两步进行镜像,第一步获取不受信任的对象,然后进行第二次“推送”(这将使用隔离)到另一个内部回购,并让内部客户端使用该推送存储库,或者禁止内部获取,并且仅在运行完整的“fsck”(同时没有发生新的获取)时才允许它们。

transfer.hideRefs

string receive-pack和upload-pack用于决定从其初始广告中省略哪些引用。使用多个定义指定多个前缀字符串。此变量值中列出的层次结构下的引用将被排除,并在响应git push或git fetch时隐藏该引用。See receive.hideRefs and uploadpack.hideRefs for program-specific versions of this config.

你还可以包括一个!在引用名称前面否定条目,显式地公开它,即使前面的条目将其标记为隐藏。如果您有多个hideRefs值,那么后面的条目将覆盖前面的条目(更特定的配置文件中的条目将覆盖不太特定的条目)。

如果名称空间正在使用,则在将其与transfer.hidefs模式匹配之前,将从每个引用中剥离名称空间前缀。例如,如果refs/heads/master在transfer.hideRefs中指定,并且当前名称空间是foo,那么refs/namespaces/foo/refs/heads/master将从广告中省略,但是refs/heads/master和refs/namespaces/bar/refs/heads/master仍然被广告为所谓的“have”行。为了在剥离前匹配refs,请在ref名称前面添加^。如果你们结合了!^,!必须首先指定。

即使您隐藏refs,客户端仍然可以通过gitnamespaces(7)手册页的“SECURITY”部分中描述的技术来窃取目标对象;最好将私有数据保存在单独的存储库中。

transfer.unpackLimit

当未设置fetch.unpackLimit或receive.unpackLimit时,将使用此变量的值。默认值为100。

transfer.advertiseSID

布尔值。当为真时,客户端和服务器进程将向其远程对应方通告其唯一会话ID。默认为false。

uploadarchive.allowUnreachable

如果为真,则允许客户端使用git archive-remote请求任何树,无论是否可以从ref技巧中访问。详见git-upload-archive(1)的“安全”部分的讨论。默认为false。

uploadpack.hideRefs

这个变量与transfer.hideRefs相同,但只适用于上载包(因此只影响获取,而不影响推送)。通过git获取隐藏引用的尝试将失败。See also uploadpack.allowTipSHA1InWant.

uploadpack.allowTipSHA1InWant

当uploadpack.hideRefs生效时,允许upload-pack接受请求,该请求要求在隐藏引用的尖端提供对象(默认情况下,这样的请求被拒绝)。See also uploadpack.hideRefs.即使这是假的,客户端也可以通过gitnamespaces(7)手册页的“安全”部分中描述的技术来窃取对象;最好将私有数据保存在单独的存储库中。

uploadpack.allowReachableSHA1InWant

允许upload-pack接受获取请求,该请求要求从任何引用提示都可以访问到对象。然而,注意计算对象可达性在计算上是昂贵的。默认为false。即使这是假的,客户端也可以通过gitnamespaces(7)手册页的“安全”部分中描述的技术来窃取对象;最好将私有数据保存在单独的存储库中。

uploadpack.allowAnySHA1InWant

允许上载-pack接受一个请求任何对象的获取请求。默认为false。

uploadpack.keepAlive

当上载包已经启动包对象时,包对象准备包时可能会有一段静默期。通常它会输出进度信息,但如果-quiet用于获取,则pack-objects在pack数据开始之前不会输出任何信息。一些客户端和网络可能认为服务器被挂起并放弃。设置此选项指示上载包在每次上载包.keepAlive秒发送空的keepalive数据包。将此选项设置为0将完全禁用保活数据包。默认为5秒。

uploadpack.packObjectsHook

如果设置了此选项,则当上载包将运行git pack-objects为客户端创建包文件时,它将运行此shell命令。pack-objects命令和它将要运行的参数(包括开头的git pack-objects)被附加到shell命令中。钩子的stdin和stdout被视为pack-object本身正在运行。即,上载-pack将把用于pack-object的输入馈送到钩子,并期望在stdout上得到完整的packfile。

注意,如果在存储库级别的配置中看到这个配置变量,它将被忽略(这是防止从不受信任的存储库获取的安全措施)。

uploadpack.allowFilter

如果设置了此选项,上载包将支持部分克隆和部分获取对象筛选。

uploadpackfilter.allow

为未指定的对象筛选器提供默认值(请参见:下面的配置变量)。如果设置为true,这也将启用将来添加的所有过滤器。默认为true。

上传包装过滤器.允许

显式地允许或禁止对应的对象过滤器,其中可以是:blob:none、blob:limit、object:type、tree、sparse:oid或combinate中的一个。如果使用组合过滤器,则必须允许组合过滤器和所有嵌套过滤器种类。Defaults to uploadpackfilter.allow.

uploadpackfilter.tree.maxDepth

仅允许-filter=tree:when不大于uploadpackfilter.tree.maxDepth的值。如果设置,这也意味着uploadpackfilter.tree.allow=true,除非已经设置了该配置变量。如果未设置则无效。

uploadpack.allowRefInWant

如果设置了此选项,上载包将支持协议版本2获取命令的ref-in-want特性。此功能的目的是为了使负载平衡服务器受益,因为由于复制延迟,这些服务器可能对其refs指向的OID没有相同的看法。

URL.代替

以该值开始的任何URL都将被重写为开始,而不是。如果某些站点提供大量的存储库,并且使用多种访问方法为它们提供服务,并且一些用户需要使用不同的访问方法,则该特性允许人们指定任何等价的URL,并让Git自动将URL重写为特定用户的最佳选择,即使对于站点上从未见过的存储库也是如此。当多个替代字符串与给定URL匹配时,将使用最长的匹配。

注意,任何协议限制都将应用于重写的URL。如果重写将URL更改为使用自定义协议或远程助手,则可能需要调整协议。*.允许config允许请求。特别是,您希望用于子模块的协议必须设置为始终,而不是用户的默认值。参见上面的协议描述.allow。

URL&push InfsteOf

任何以该值开始的URL都不会被推到;相反,它将被重写为以该值开始,结果的URL将被推到。在某些站点提供大量存储库,并使用多种访问方法(其中一些不允许推送)为它们提供服务的情况下,此功能允许人们指定一个只拉URL,并让Git自动使用适当的URL推送,即使对于站点上从未见过的存储库也是如此。当多个push InstruOf字符串与给定URL匹配时,将使用最长的匹配。如果远程具有显式推送,则Git将忽略该远程的此设置。

user.name

user.email

author.name

author.email

committer.name

committer.email

user.name和user.email变量决定提交对象的author和committer字段中的最终结果。如果您需要不同的作者或提交者,可以设置autor.name、autor.email、committer.name或committer.email变量。输入的句子至少有一个单词超过100个字符,请检查输入。

注意,这些变量的名称形式通常指某种形式的个人名称。有关这些设置和凭据.username选项的更多信息,请参见git-commit(1)和git(1)的环境变量部分。

user.useConfigOnly

指示Git避免尝试猜测user.email和user.name的默认值,而是仅从配置中检索值。例如,如果您有多个电子邮件地址,并且希望为每个存储库使用不同的电子邮件地址,那么在全局配置中将此配置选项与名称一起设置为true时,Git将提示您在新克隆的存储库中进行新提交之前设置电子邮件。默认为false。

user.signingKey

如果在创建签名标记或提交时git-tag(1)或git-commit(1)没有选择您希望它自动选择的键,您可以使用此变量覆盖默认选择。此选项不变地传递给gpg的-local-user参数,因此您可以使用gpg支持的任何方法指定密钥。

versionsort.prereleaseSuffix (deprecated)

Deprecated alias for versionsort.suffix.Ignored if versionsort.suffix is set.

versionsort.suffix

即使在git-tag(1)中使用版本排序时,具有相同基版本但不同后缀的标签名称仍然按字典顺序排序,例如,预发布标签出现在主发布之后(例如,“1.0”之后的“1.0-rc1”)。可以指定这个变量来确定具有不同后缀的标签的排序顺序。

通过在这个变量中指定一个后缀,任何包含这个后缀的标签名都会出现在相应的主版本之前。例如,如果变量设置为“-rc”,则所有“1.0-RCX”标记将出现在“1.0”之前。如果指定多次,每个后缀一次,那么配置中后缀的顺序将决定带有这些后缀的标签名的排序顺序。例如,如果“-pre”出现在配置中的“-rc”之前,则所有“1.0-Prex”标签将列在任何“1.0-RCX”标签之前。可以通过在那些其它后缀中指定空后缀来确定主发布标签相对于具有各种后缀的标签的放置。例如,如果后缀"-rc"、"""、"-ck"和"-bfs"按此顺序出现在配置中,则首先列出所有"V4.8-RCX"标签,然后是"V4.8",然后是"V4.8-CKX",最后是"V4.8-bfsX"。

如果有多个后缀与相同的标签名匹配,则该标签名将根据从标签名中最早位置开始的后缀进行排序。如果多于一个不同匹配后缀开始于最早的位置,则该标签名将根据这些后缀中最长的一个进行排序。如果不同后缀在多个配置文件中,则它们之间的排序顺序是未定义的。

web.browser

指定可由某些命令使用的web浏览器。目前只有git-instaweb(1)和git-help(1)可以使用它。

worktree.guessRemote

如果没有指定分支,并且既不使用-b也不使用-B也不使用-depreach,那么git工作树将添加默认值以从HEAD创建新分支。如果将worktree.guessRemote设置为true,worktree add将尝试查找名称与新分支名称唯一匹配的远程跟踪分支。如果存在该分行,则签出该新分行,并将其设置为“上游”。如果找不到这样的匹配,则返回到从当前HEAD创建新分支。

虫子

当使用不推荐的[section.subsection]语法时,如果子节至少有一个大写字符,那么更改一个值将导致添加多行键而不是更改。例如,当配置看起来像

[第.小节]

key=value1

运行git config section.Subsection.key value2将导致

[第.小节]

key=value1

键=值2

Git

git(1)套房的一部分

标签:选项,git,true,Manual,默认,Git,设置,config
来源: https://blog.csdn.net/Passerby_Wang/article/details/121104895

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有