亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
characters

命名

git-config  - 獲取并設(shè)置存儲庫或全局選項

概要

git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]git config [<file-option>] [type] --add name value
git config [<file-option>] [type] --replace-all name value [value_regex]git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
git config [<file-option>] --unset name [value_regex]git config [<file-option>] --unset-all name [value_regex]git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color name [default]git config [<file-option>] --get-colorbool name [stdout-is-tty]git config [<file-option>] -e | --edit

描述

您可以使用此命令查詢/設(shè)置/替換/取消設(shè)置選項。名稱實際上是由點分隔的部分和鍵,并且該值將被轉(zhuǎn)義。

通過使用該--add選項可以將多行添加到選項。如果您想要更新或取消可能出現(xiàn)在多行上的選項,則value_regex需要提供 POSIX 正則表達式。只有與正則表達式匹配的現(xiàn)有值才會更新或取消設(shè)置。如果要處理與正則表達式匹配的行,只需在前面添加一個感嘆號(另請參閱示例)。

類型說明符可以是--int或者--bool,以git config確保變量具有給定類型并將該值轉(zhuǎn)換為規(guī)范形式(對于int為簡單十進制數(shù),對于 bool 為 “true” 或 “false” 字符串),或者--path,它做了一些路徑擴展(見--path下文)。如果沒有傳入類型說明符,則不會對該值執(zhí)行檢查或轉(zhuǎn)換。

讀取時,值從系統(tǒng)中,默認(rèn)情況下,全局和本地資源庫的配置文件,并選擇閱讀--system--global,--local--file <filename>可以用來告訴命令只從該位置(查看文件)來讀取。

書寫時,新的值寫入到默認(rèn),并選擇存儲庫本地配置文件--system,--global,--file <filename>可以用來告訴命令寫入到該位置(你可以說--local那不過是默認(rèn)值)。

這個命令在發(fā)生錯誤時將失敗并顯示非零狀態(tài)。一些退出代碼是:

  • 該部分或鍵無效(ret = 1),

  • 沒有提供部分或名稱(ret = 2),

  • 配置文件無效(ret = 3),

  • 配置文件不能被寫入(ret = 4),

  • 你嘗試去掉一個不存在的選項(ret = 5),

  • 您嘗試取消設(shè)置/設(shè)置多行匹配的選項(ret = 5)或

  • 您嘗試使用無效的正則表達式(ret = 6)。

成功時,該命令返回退出代碼0。

選項

--replace-all

默認(rèn)行為是最多替換一行。這將替換與該鍵匹配的所有行(以及可選的 value_regex )。

--add

在選項中添加新行而不更改任何現(xiàn)有值。這與提供^$ value_regex in 相同--replace-all。

--get

獲取給定鍵的值(可選用與值匹配的正則表達式進行過濾)。如果未找到該鍵,則返回錯誤代碼1,如果找到多個鍵值,則返回上一個值。

--get-all

像 get 一樣,但返回多值鍵的所有值。

--get-regexp

像--get-all一樣,但將該名稱解釋為正則表達式并寫出鍵名稱。正則表達式匹配目前是區(qū)分大小寫的,并且針對小節(jié)和變量名稱小寫的密鑰的規(guī)范化版本進行,但小節(jié)名稱不是。

--get-urlmatch name URL

當(dāng)給定一個由兩部分組成的名稱 section.key 時,會返回部分 <url> .key 的值,該部分的 <url> 部分與給定 URL 匹配的最佳部分將返回(如果不存在此類鍵,則使用 section.key 的值作為后備)。當(dāng)僅給出該部分作為名稱時,請為該部分中的所有鍵執(zhí)行此操作并列出它們。如果找不到值,則返回錯誤代碼1。

--global

對于編寫選項:寫入全局~/.gitconfig文件而不是存儲庫.git/config,$XDG_CONFIG_HOME/git/config如果此文件存在且~/.gitconfig文件不存在,則寫入文件。

閱讀選項:只能從全局文件讀取~/.gitconfig,$XDG_CONFIG_HOME/git/config而不能從所有可用文件中讀取。

另請參閱文件。

--system

對于編寫選項:寫入系統(tǒng)范圍$(prefix)/etc/gitconfig而不是存儲庫.git/config。

對于閱讀選項:只能從系統(tǒng)范圍內(nèi)讀取,$(prefix)/etc/gitconfig而不能從所有可用文件中讀取。

另請參閱文件。

--local

編寫選項:寫入存儲庫.git/config文件。這是默認(rèn)行為。

閱讀選項:只能從存儲庫中讀取,.git/config而不能從所有可用文件中讀取。

另請參閱文件。

-f config-file   --file config-file

使用給定的配置文件而不是 GIT_CONFIG 指定的配置文件。

--blob blob

類似于--file使用給定的 blob 而不是文件。例如,您可以使用master:.gitmodules.gitmodules主分支中的文件讀取值。請參閱 gitrevisions [7]中的“指定修訂”一節(jié)以獲取拼寫 blob 名稱拼寫方法的更完整列表。

--remove-section

從配置文件中刪除給定的部分。

--rename-section

將給定部分重命名為新名稱。

--unset

從配置文件中刪除與密鑰匹配的行。

--unset-all

從配置文件中刪除所有與密鑰匹配的行。

-l   --list

列出在配置文件中設(shè)置的所有變量及其值。

--bool

git config 將確保輸出為“真”或“假”

--int

git config將確保輸出是一個簡單的十進制數(shù)。在輸出前,可選值后綴為kmg在配置文件中將使該值乘以1024,1048576或1073741824。

--bool-or-int

git config 將確保輸出匹配 --bool 或 --int 的格式,如上所述。

--path

git-config將擴展為指定用戶的主目錄~的值$HOME~user主目錄。此設(shè)置在設(shè)置值時不起作用(但您可以git config bla ~/從命令行使用 shell 來擴展)。

-z   --null

對于輸出值和/或鍵的所有選項,始終使用空字符(而不是換行符)結(jié)束值。使用換行符作為鍵和值之間的分隔符。這允許安全地解析輸出而不會被例如包含換行符的值混淆。

--name-only

輸出--list--get-regexp的配置變量的名稱。

--show-origin

使用原點類型(文件,標(biāo)準(zhǔn)輸入,blob,命令行)和實際原點(配置文件路徑,ref 或 blob id,如果適用)擴大所有查詢配置選項的輸出。

--get-colorbool name stdout-is-tty

找到name(例如color.diff)的顏色設(shè)置并輸出“true”或“false”。stdout-is-tty應(yīng)該是“真”或“假”,并且在配置時稱為“自動”時將其考慮在內(nèi)。如果stdout-is-tty缺少,則檢查命令本身的標(biāo)準(zhǔn)輸出,如果要使用顏色,則退出狀態(tài)0,否則退出狀態(tài)1。當(dāng)顏色設(shè)置為name未定義時,該命令將color.ui用作回退。

--get-color name default

查找為name(例如color.diff.new)配置的顏色并將其作為 ANSI 顏色轉(zhuǎn)義序列輸出到標(biāo)準(zhǔn)輸出。default如果沒有配置顏色,則使用可選參數(shù)name。

-e   --edit

打開一個編輯器來修改指定的配置文件; 或者--system,--global或者存儲庫(默認(rèn))。

--no-includes

include.*查找值時,請在配置文件中遵守指令。默認(rèn)為off當(dāng)一個特定的文件中給出(例如,使用--file--global等),on搜索所有配置文件時。

Files

如果沒有明確設(shè)置--file,有四個文件git config將搜索配置選項:

$(prefix)/etc/gitconfig

系統(tǒng)范圍的配置文件。

$XDG_CONFIG_HOME/git/config

第二個用戶特定的配置文件。如果 $ XDG_CONFIG_HOME 未設(shè)置或為空,$HOME/.config/git/config將被使用。此文件中設(shè)置的任何單值變量都將被任何內(nèi)容覆蓋~/.gitconfig。如果你有時使用舊版本的 Git ,不建立這個文件是一個好主意,因為對這個文件的支持最近被添加了。

~/.gitconfig

用戶特定的配置文件。也稱為“全局”配置文件。

$GIT_DIR/config

存儲庫特定的配置文件。

如果沒有其他選項,所有閱讀選項將讀取所有可用的這些文件。如果全局配置文件或全系統(tǒng)配置文件不可用,它們將被忽略。如果存儲庫配置文件不可用或不可讀,git config將以非零錯誤代碼退出。但是,在任何情況下都不會發(fā)布錯誤消息。

這些文件按照上面給出的順序讀取,其中最后一個值優(yōu)先于先前讀取的值。當(dāng)多個值被采用時,將使用來自所有文件的密鑰的所有值。

使用該-c選項運行任何 git 命令時,您可以覆蓋單個配置參數(shù)。有關(guān)詳細(xì)信息,請參閱 git [1]。

所有編寫選項將默認(rèn)寫入存儲庫特定的配置文件。請注意,這也會影響諸如--replace-all和的選項--unsetgit config 一次只能更改一個文件。

您可以通過命令行選項或環(huán)境變量來覆蓋這些規(guī)則。在--global--system選項將限制分別用于全球或全系統(tǒng)文件的文件。該GIT_CONFIG環(huán)境變量有類似的效果,但您可以指定任何你想要的文件名。

環(huán)境

GIT_CONFIG

從給定文件取代 .git / config 的配置。使用 “--global” 選項將強制使用 ?/ .gitconfig 。使用 “--system” 選項將強制使用 $(prefix)/ etc / gitconfig 。

GIT_CONFIG_NOSYSTEM

是否跳過從系統(tǒng)范圍的 $(prefix)/ etc / gitconfig 文件讀取設(shè)置。有關(guān)詳細(xì)信息,請參閱 git [1]。

另請參閱文件。

例子

給定一個像這樣的 .git / config :

#
# This is the config file, and
# a '#' or ';' character indicates
# a comment
#
; core variables[core]        ; Don't trust file modes
        filemode = false
; Our diff algorithm[diff]
        external = /usr/local/bin/diff-wrapper
        renames = true
; Proxy settings[core]
        gitproxy=proxy-command for kernel.org
        gitproxy=default-proxy ; for all the rest
; HTTP[http]
        sslVerify[http "https://weak.example.com"]
        sslVerify = false
        cookieFile = /tmp/cookie.txt

您可以將 filemode 設(shè)置為 true

% git config core.filemode true

假設(shè)的代理命令條目實際上有一個后綴來辨別它們適用的 URL 。以下是如何將 kernel.org 的條目更改為 “ssh” 。

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

這確保只有 kernel.org 的鍵/值對被替換。

要刪除重命名的條目,請執(zhí)行

% git config --unset diff.renames

如果你想刪除一個多變量的條目(比如上面的 core.gitproxy ),你必須提供一個匹配正好一行的正則表達式。

要查詢給定鍵的值,請執(zhí)行

% git config --get core.filemode

% git config core.filemode

或者,查詢多變量:

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

如果您想知道多變量的所有值,請執(zhí)行以下操作:

% git config --get-all core.gitproxy

如果你喜歡危險的生活,你可以用一個新的 core.gitproxy 替換掉所有的 core.gitproxy

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

但是,如果您只想替換默認(rèn)代理的行,即沒有 “for ...” 后綴的行,請執(zhí)行如下操作:

% git config core.gitproxy ssh '! for '

要實際上只將值與感嘆號匹配,您必須

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

要添加新代理,而不更改任何現(xiàn)有代理,請使用

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

在腳本中使用來自配置的自定義顏色的示例:

#!/bin/sh
WS=$(git config --get-color color.diff.whitespace "blue reverse")RESET=$(git config --get-color "" "reset")echo "${WS}your whitespace color or blue reverse${RESET}"

對于https://weak.example.com,http.sslVerify中的網(wǎng)址設(shè)置為 false ,而為所有其他網(wǎng)址設(shè)置true

% git config --bool --get-urlmatch http.sslverify https://good.example.comtrue% git config --bool --get-urlmatch http.sslverify https://weak.example.comfalse% git config --get-urlmatch http https://weak.example.com
http.cookieFile /tmp/cookie.txt
http.sslverify false

配置文件

Git 配置文件包含許多影響 Git 命令行為的變量。.git/config每個存儲庫中的文件都用于存儲該存儲庫的配置,并$HOME/.gitconfig用于將每個用戶的配置存儲為該.git/config文件的后備值。該文件/etc/gitconfig可用于存儲系統(tǒng)范圍的默認(rèn)配置。

配置變量由 Git 管道和瓷器使用。變量分為多個部分,其中變量本身的完全限定變量名稱是最后一個以點分隔的部分,部分名稱是最后一個點之前的所有內(nèi)容。變量名稱不區(qū)分大小寫,僅允許字母數(shù)字字符-,并且必須以字母字符開頭。一些變量可能會出現(xiàn)多次; 我們說那個變量是多值的。

句法

語法相當(dāng)靈活和寬容; 空格大多被忽略。在#;字符開頭的注釋行的末尾,空行被忽略。

該文件由部分和變量組成。一節(jié)以方括號中的節(jié)的名稱開始,并一直持續(xù)到下一節(jié)開始。部分名稱不區(qū)分大小寫。只有字母數(shù)字字符,-并且.在部分名稱中是允許的。每個變量必須屬于某個部分,這意味著在首次設(shè)置變量之前必須有一個部分標(biāo)題。

部分可以進一步分為小節(jié)。要開始一個小節(jié),請在節(jié)標(biāo)題中將其名稱放在雙引號中,用空格與節(jié)名稱分隔,如下例所示:

        [section "subsection"]

小節(jié)名稱區(qū)分大小寫,可以包含除換行符以外的任何字符(雙引號"和反斜線可以通過分別將它們轉(zhuǎn)義為\"\\)來包含。節(jié)標(biāo)題不能跨越多行。變量可能直接屬于某個部分或給定的子部分。你可以有[section],如果你有[section "subsection"],但你并不需要。

還有一個不贊成的[section.subsection]語法。使用該語法,子部分名稱將轉(zhuǎn)換為小寫,并且也將區(qū)分大小寫。這些小節(jié)名稱遵循與節(jié)名稱相同的限制。

所有其他行(以及段落標(biāo)題后面的行的其余部分)都以表單的形式被識別為設(shè)置變量name = value(或者簡單name地說,這個變量就是布爾值 “true” )。變量名稱不區(qū)分大小寫,僅允許字母數(shù)字字符-,并且必須以字母字符開頭。

定義一個值的行可以通過以\結(jié)尾來繼續(xù)到下一行; 反引號和行結(jié)束被剝離。領(lǐng)先后的空格name =中,第一個注釋字符后,該行剩余部分#;和該行的尾部空格被丟棄,除非它們是雙引號括起來。價值范圍內(nèi)的內(nèi)部空白是逐字保留的。

在雙引號內(nèi),必須轉(zhuǎn)義雙引號"和反斜線\字符:use \"for " and \\for \。

以下轉(zhuǎn)義序列(旁邊\"\\)被識別:\n換行符(NL),\t水平制表符(HT,TAB)和\b退格符(BS)。其他char轉(zhuǎn)義序列(包括八進制轉(zhuǎn)義序列)無效。

包括

includeincludeIf部分允許您包括來自其他來源的配置指令。這些部分的行為彼此完全相同,includeIf只是如果部分條件未評估為真,部分可能會被忽略; 請參閱下面的“有條件包含”。

您可以通過將特殊include.path(或includeIf.*.path)變量設(shè)置為要包含的文件的名稱來包含另一個配置文件。該變量將路徑名作為其值,并受波浪擴展影響。這些變量可以多次給出。

包含文件的內(nèi)容會立即插入,就好像它們已經(jīng)在 include 指令的位置找到一樣。如果變量的值是相對路徑,則路徑被認(rèn)為是相對于在其中找到 include 指令的配置文件。見下面的例子。

有條件的包括

您可以通過將includeIf.<condition>.path變量設(shè)置為要包含的文件的名稱,從另一個條件包含配置文件。

條件以關(guān)鍵字后跟冒號開頭,一些數(shù)據(jù)的格式和含義取決于關(guān)鍵字。支持的關(guān)鍵字是:

gitdir

關(guān)鍵字gitdir:后面的數(shù)據(jù)用作全局模式。如果 .git 目錄的位置與模式匹配,則滿足包含條件。

.git 位置可以自動發(fā)現(xiàn),也可以來自$GIT_DIR環(huán)境變量。如果存儲庫是通過 .git 文件(例如,從子模塊或鏈接的工作樹)自動發(fā)現(xiàn)的,那么 .git 位置將是 .git 目錄的最終位置,而不是 .git 文件所在的位置。

該模式可以包含標(biāo)準(zhǔn)通配符通配符和另外兩個,**/并且/**可以匹配多個路徑組件。詳情請參閱 gitignore [5] 。為了方便:

  • 如果模式開頭是~/,~將被替換為環(huán)境變量HOME的內(nèi)容。

  • 如果模式開始是./,則將其替換為包含當(dāng)前配置文件的目錄。

  • 如果模式不以任何啟動~/,./或者/**/將被自動加上。例如,模式foo/bar變成**/foo/bar并且將匹配/any/path/to/foo/bar

  • 如果模式結(jié)束/,**將自動添加。例如,模式foo/變成foo/**。換句話說,它會遞歸匹配 “foo” 和里面的所有內(nèi)容。

gitdir/i

這與gitdir除了不區(qū)分大小寫匹配相同(例如對大小寫不敏感的文件系統(tǒng))

關(guān)于通過gitdirgitdir/i匹配的更多注意事項:

  • $GIT_DIR匹配前不解析符號鏈接。

  • 符號鏈接和實際路徑版本的路徑都將在外部匹配$GIT_DIR。例如,如果?/ Git 是一個符號鏈接到/ mnt /存儲/ git 的,都gitdir:~/gitgitdir:/mnt/storage/git匹配。v2.13.0中此功能的最初版本并不是這種情況,它只與實際路徑版本相匹配。希望與此功能的初始版本兼容的配置需要僅指定實際路徑版本或兩個版本。

  • 請注意,“../”不是特別的,并且會直接匹配,這不太可能是您想要的。

# Core variables[core]        ; Don't trust file modes
        filemode = false
# Our diff algorithm[diff]
        external = /usr/local/bin/diff-wrapper
        renames = true
[branch "devel"]
        remote = origin
        merge = refs/heads/devel
# Proxy settings[core]
        gitProxy="ssh" for "kernel.org"
        gitProxy=default-proxy ; for the rest
[include]
        path = /path/to/foo.inc ; include by absolute path
        path = foo.inc ; find "foo.inc" relative to the current file
        path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
; include if $GIT_DIR is /path/to/foo/.git[includeIf "gitdir:/path/to/foo/.git"]
        path = /path/to/foo.inc
; include for all repositories inside /path/to/group[includeIf "gitdir:/path/to/group/"]
        path = /path/to/foo.inc
; include for all repositories inside $HOME/to/group[includeIf "gitdir:~/to/group/"]
        path = /path/to/foo.inc
; relative paths are always relative to the including; file (if the condition is true); their location is not; affected by the condition[includeIf "gitdir:/path/to/group/"]
        path = foo.inc

許多變量的值被視為一個簡單的字符串,但有些變量會接受特定類型的值,并且有關(guān)如何拼寫它們的規(guī)則。

boolean

當(dāng)稱取一個布爾值的變量,許多同義詞接受truefalse; 這些都是不區(qū)分大小寫的。

true

布爾真正的文字是yes,ontrue,和1。另外,沒有定義的變量= <value>被視為是真的。

false

布爾值 false 文字是no,off,false,0和空字符串。

使用--bool類型說明符將值轉(zhuǎn)換為規(guī)范形式時,git config將確保輸出為“true”或“false”(拼寫為小寫)。

integer

指定各種大小的許多變量的值可以后綴為kM...以表示“將數(shù)字縮放1024”,“由1024x1024”等。

color

采用顏色的變量的值是顏色列表(最多兩個,一個用于前景,一個用于背景)和屬性(盡可能多),用空格分隔。

接受基本的顏色normal,blackred,green,yellowblue,magenta,cyanwhite。第一種顏色是前景; 第二個是背景。

顏色也可以用0到255之間的數(shù)字給出; 這些使用 ANSI 256色模式(但請注意,并非所有終端都可以支持此模式)。如果你的終端支持它,你也可以指定24位的 RGB 值,如十六進制#ff0ab3。

接受的屬性bold,dim,ul,blinkreverse,italic,和strike(用于打叉或“刪除線”字母)。任何屬性相對于顏色的位置(之前,之后或之間)無關(guān)緊要。特定屬性可以用前綴被關(guān)閉nono-(例如,noreverse,no-ul等等)。

一個空的顏色字符串根本不產(chǎn)生顏色效果。這可以用來避免在完全禁用顏色的情況下著色特定元素。

對于 git 的預(yù)定義顏色槽,這些屬性意味著在彩色輸出中每個項目的開始處重置。因此,即使在同一輸出行上的前一個事物(例如,在log --decoratebold輸出中的分支名稱列表之前的開放圓括號)設(shè)置為使用其他屬性進行繪制,設(shè)置color.decorate.branchblack將以明文形式black繪制該分支名稱。然而,自定義日志格式可能會做更復(fù)雜和分層的著色,否定形式可能在那里很有用。

路徑

該接受的路徑名值的變量可以給出以“開始的字符串~/”或“ ~user/”,和通常的波浪線擴展發(fā)生這樣的字符串:~/擴展到的值$HOME,和~user/被指定的用戶的主目錄。

變量

請注意,此列表不全面,不一定完整。對于特定于命令的變量,您可以在相應(yīng)的手冊頁中找到更詳細(xì)的說明。

其他與 git 相關(guān)的工具可能會使用自己的變量。在發(fā)明新變量以供您自己的工具使用時,請確保它們的名稱與 Git 本身和其他常用工具使用的名稱不沖突,并在文檔中對其進行描述。

advice.*

這些變量控制旨在幫助新用戶的各種可選幫助消息。所有的advice.*變量默認(rèn)為true,你可以通過設(shè)置這些變量來告訴 Git 你不需要幫助來處理這些false

pushUpdateRejected

設(shè)置這個變量false,如果要禁用pushNonFFCurrent,pushNonFFMatchingpushAlreadyExists,pushFetchFirst,和pushNeedsForce同時進行。

pushNonFFCurrent

由于對當(dāng)前分支的非快進更新,git-push [1] 失敗時顯示的建議。

pushNonFFMatching

當(dāng)您運行 git-push [1] 并matching refs顯式推送(即您使用:或指定了不是您當(dāng)前分支的 refspec )時顯示的建議,并導(dǎo)致非快進錯誤。

pushAlreadyExists

當(dāng) git-push [1] 拒絕不符合快速轉(zhuǎn)發(fā)資格的更新時顯示(例如,標(biāo)簽)。

pushFetchFirst

當(dāng) git-push [1] 拒絕試圖覆蓋指向我們沒有的對象的遠程參考的更新時顯示。

pushNeedsForce

當(dāng) git-push [1] 拒絕嘗試覆蓋指向非 commit-ish 對象的遠程 ref 的更新或使遠程 ref 位于非 commit-ish 對象時顯示。

statusHints

在 git-status [1] 的輸出中顯示如何從當(dāng)前狀態(tài)開始,在 git-commit [1] 中寫入提交消息時顯示的模板中以及 git-checkout [1] 顯示的幫助消息中顯示方向。切換分支時。

statusUoption

建議考慮使用-u git-status [1]選項,當(dāng)命令需要2秒鐘以上才能枚舉未跟蹤的文件。

commitBeforeMerge

當(dāng) git-merge [1] 拒絕合并以避免覆蓋本地更改時顯示建議。

resolveConflict

在沖突阻止執(zhí)行操作時由各種命令顯示的建議。

implicitIdentity

當(dāng)您的信息從系統(tǒng)用戶名和域名中被猜出時,提供關(guān)于如何設(shè)置您的身份配置的建議。

detachedHead

當(dāng)您使用 git-checkout [1] 移至分離 HEAD 狀態(tài)時,顯示的建議指示如何在事實之后創(chuàng)建本地分支。

amWorkDir

在 git-am [1] 未能應(yīng)用時顯示補丁文件位置的建議。

rmHints

如果 git-rm [1] 輸出失敗,請指示如何從當(dāng)前狀態(tài)繼續(xù)。

addEmbeddedRepo

當(dāng)你意外地在另一個 git 倉庫中添加了一個 git 倉庫時,建議做些什么。

core.fileMode

告訴 Git 工作樹中的文件的可執(zhí)行位是否被尊重。

當(dāng)標(biāo)記為可執(zhí)行的文件被簽出時,某些文件系統(tǒng)會丟失可執(zhí)行文件位,或檢出可執(zhí)行文件位置不可執(zhí)行的文件。git-clone [1] 或 git-init [1] 探測文件系統(tǒng),看它是否正確處理可執(zhí)行位,并根據(jù)需要自動設(shè)置此變量。

但是,存儲庫可能位于正確處理文件模式的文件系統(tǒng)上,并且該變量true在創(chuàng)建時設(shè)置為,但后來可以從其他丟失文件模式的環(huán)境訪問(例如,通過 CIFS 掛載導(dǎo)出 ext4 ,訪問創(chuàng)建的 Cygwin 用于 Windows 或 Eclipse 的 Git 倉庫)。在這種情況下,可能需要將此變量設(shè)置為false。參見 git-update-index [1]。

缺省值為 true(當(dāng) core.filemode 未在配置文件中指定時)。

core.hideDotFiles

(僅限Windows)如果為 true,則將新創(chuàng)建的目錄和名稱以點開頭的文件標(biāo)記為隱藏。如果dotGitOnly只有.git/目錄被隱藏,但沒有以點開頭的其他文件。默認(rèn)模式是dotGitOnly。

core.ignoreCase

如果為 true,則此選項啟用各種解決方法,以使 Git 能夠更好地處理不區(qū)分大小寫的文件系統(tǒng),如 FAT 。例如,如果一個目錄列表在 Git 期望 “Makefile” 時發(fā)現(xiàn) “makefile” ,Git 會認(rèn)為它是真正的同一個文件,并繼續(xù)記住它為 “Makefile” 。

缺省值為 false,除非 git-clone [1] 或 git-init [1] 將在創(chuàng)建存儲庫時探測并設(shè)置 core.ignoreCase為true(如果適用)。

core.precomposeUnicode

此選項僅適用于 Git 的 Mac OS 實施。當(dāng) core.precomposeUnicode = true 時,Git 恢復(fù)由 Mac OS 完成的文件名的 Unicode 分解。在 Mac OS 和 Linux 或 Windows 之間共享存儲庫時,這非常有用。(需要 Git for Windows 1.7.10 或更高版本,或者在 Cygwin 1.7 下使用 Git )。如果為 false ,則 Git 將文件名處理為完全透明,這與舊版 Git 向后兼容。

core.protectHFS

如果設(shè)置為 true ,則不允許簽出.git在 HFS +文件系統(tǒng)上認(rèn)為等效的路徑。默認(rèn)為true在 Mac OS 和false其他地方。

core.protectNTFS

如果設(shè)置為 true ,則不允許簽出會導(dǎo)致 NTFS 文件系統(tǒng)問題的路徑,例如與8.3“short”名稱沖突。默認(rèn)true在 Windows 和false其他地方。

core.trustctime

如果為 false ,索引和工作樹之間的 ctime 差異將被忽略; 當(dāng) inode 更改時間由 Git(文件系統(tǒng)搜尋器和某些備份系統(tǒng))之外的某些東西定期修改時,這一點很有用。參見 git-update-index [1]。默認(rèn)情況下為真。

core.splitIndex

如果為 true,則將使用索引的分割索引功能。參見 git-update-index [1]。默認(rèn)為 False。

core.untrackedCache

確定如何處理索引的未跟蹤緩存功能。如果此變量未設(shè)置或設(shè)置為,它將被保留keep。如果設(shè)置為,它將自動添加true。如果設(shè)置為,它會自動刪除false。在設(shè)置之前true,您應(yīng)該檢查您的系統(tǒng)上的 mtime 是否正常工作。參見 git-update-index [1] 。keep默認(rèn)。

core.checkStat

確定在索引和工作樹之間匹配哪些統(tǒng)計字段。用戶可以將其設(shè)置為defaultminimal。默認(rèn)(或明確default)是檢查所有字段,包括 mtime 和 ctime 的第二部分。

core.quotePath

命令,輸出路徑(例如ls-filesdiff),將引用中的路徑名“異?!钡淖址ㄟ^以相同的方式 C 逸出控制字符(例如,用反斜杠包圍在雙引號的路徑名和避開這些字符\t用于TAB,\n對于LF,\\用于反斜杠)或值大于0x80的字節(jié)(例如\302\265UTF-8中的 “micro” 的八進制)。如果此變量設(shè)置為 false ,則高于0x80的字節(jié)不再被視為“異常”。無論此變量的設(shè)置如何,雙引號,反斜杠和控制字符總是會被轉(zhuǎn)義。一個簡單的空間字符不被認(rèn)為是“不尋常的”。許多命令可以使用該-z選項完全逐字輸出路徑名。默認(rèn)值是 true 。

core.eol

text在 core.autocrlf 為 false 時,設(shè)置在工作目錄中用于具有屬性設(shè)置的文件的行結(jié)束類型。替代品是lf,crlf并且native,它使用平臺的本地行結(jié)束。默認(rèn)值是native。請參閱 gitattributes [5] 了解有關(guān)換行結(jié)束的更多信息。

core.safecrlf

如果為 true ,則使 Git 檢查CRLF在行末換算處于活動狀態(tài)時轉(zhuǎn)換是否可逆。Git 將驗證命令是直接還是間接地修改工作樹中的文件。例如,提交文件后檢出相同的文件應(yīng)該在工作樹中產(chǎn)生原始文件。如果當(dāng)前設(shè)置不是這樣core.autocrlf,Git 將拒絕該文件。變量可以設(shè)置為“警告”,在這種情況下,Git 只會警告不可逆的轉(zhuǎn)換,但會繼續(xù)操作。

CRLF 轉(zhuǎn)換承擔(dān)破壞數(shù)據(jù)的輕微機會。當(dāng)它被啟用時,Git 會在提交期間將 CRLF 轉(zhuǎn)換為 LF ,并在結(jié)帳期間將LF轉(zhuǎn)換為 CRLF 。在提交之前包含 LF 和 CRLF 混合的文件無法由 Git 重新創(chuàng)建。對于文本文件,這是正確的做法:它糾正行結(jié)束,以便我們在存儲庫中只有 LF 行結(jié)束符。但對于意外分類為文本的二進制文件,轉(zhuǎn)換可能會破壞數(shù)據(jù)。

如果您提前認(rèn)識到這種腐敗,可以通過在 .gitattributes 中明確設(shè)置轉(zhuǎn)換類型來輕松修復(fù)它。提交后立即在工作樹中保留原始文件,并且此文件尚未損壞。你可以明確地告訴 Git 這個文件是二進制的,Git 會適當(dāng)?shù)靥幚磉@個文件。

不幸的是,用混合行結(jié)束清除文本文件的理想效果和破壞二進制文件的不良效果無法區(qū)分。在這兩種情況下,CRLF 都以不可逆的方式被移除。對于文本文件,這是正確的,因為 CRLF 是行結(jié)束符,而對于二進制文件,轉(zhuǎn)換 CRLF 會破壞數(shù)據(jù)。

請注意,這個安全檢查并不意味著一個結(jié)帳時會產(chǎn)生的不同的設(shè)置與原始文件的文件core.eolcore.autocrlf,但只適用于當(dāng)前的一個。例如,一個帶有文本文件的文件LF將被接受,core.eol=lf并且隨后可以被檢出core.eol=crlf,在這種情況下,生成的文件將包含CRLF,盡管包含原始文件LF。但是,在這兩種工作樹中,行結(jié)束都是一致的,即全部LF或全部CRLF,但從不混合。該core.safecrlf機制會報告具有混合行結(jié)尾的文件。

core.autocrlf

將此變量設(shè)置為 “true” 與將text所有文件和 core.eol 中的屬性設(shè)置為 “auto” 為 “crlf” 相同。如果你想CRLF在你的工作目錄中有行結(jié)尾并且存儲庫有 LF 行結(jié)束符,那么設(shè)置為 true 。該變量可以設(shè)置為input,在這種情況下不執(zhí)行輸出轉(zhuǎn)換。

core.symlinks

如果為 false ,則將符號鏈接檢出為包含鏈接文本的小純文件。git-update-index [1] 和 git-add [1] 不會將記錄類型更改為常規(guī)文件。在不支持符號鏈接的 FAT 等文件系統(tǒng)上很有用。

缺省值為 true ,除了創(chuàng)建存儲庫時,git-clone [1] 或 git-init [1] 將探測并設(shè)置 core.symlinks為false(如果適用)。

core.gitProxy

command host port當(dāng)使用 Git 協(xié)議進行抓取時,執(zhí)行(as )“代理命令” 而不是建立與遠程服務(wù)器的直接連接。如果變量值處于 “COMMAND for DOMAIN” 格式中,則該命令僅應(yīng)用于以指定域字符串結(jié)尾的主機名。這個變量可以設(shè)置多次,并按照給定的順序進行匹配; 第一場比賽獲勝。

可以被GIT_PROXY_COMMAND環(huán)境變量覆蓋(它總是普遍適用,沒有特殊的 “for” 處理)。

特殊的字符串none可以用作代理命令來指定沒有代理用于給定的域模式。這對排除防火墻內(nèi)的服務(wù)器使用代理非常有用,而默認(rèn)為外部域的通用代理。

core.sshCommand

如果設(shè)置了這個變量,git fetchgit push將使用指定的命令而不是ssh當(dāng)他們需要連接到遠程系統(tǒng)時。該命令與GIT_SSH_COMMAND環(huán)境變量的形式相同,并且在設(shè)置環(huán)境變量時被覆蓋。

core.ignoreStat

如果為 true,Git 將避免使用 lstat()調(diào)用來檢測文件是否已更改,方法是為索引文件和工作樹中相同更新的跟蹤文件設(shè)置“假定 - 不變”位。

當(dāng)文件在 Git 之外被修改時,用戶將需要顯式地修改已修改的文件(例如參見Examples git-update-index [1] 中的部分)。Git 通常不會檢測到這些文件的變化。

這對于 lstat()調(diào)用非常慢的系統(tǒng)非常有用,例如 CIFS / Microsoft Windows 。

默認(rèn)為 False 。

core.preferSymlinkRefs

使用符號鏈接代替 HEAD 和其他符號參考文件的默認(rèn) “symref” 格式。有時需要使用舊的腳本來處理 HEAD ,這是一個符號鏈接。

core.bare

如果該屬性值為 true ,則假定該存儲庫為bare并且沒有與其關(guān)聯(lián)的工作目錄。如果是這種情況,需要工作目錄的許多命令將被禁用,例如 git-add [1] 或 git-merge [1] 。

當(dāng)創(chuàng)建倉庫時,這個設(shè)置會被 git-clone [1] 或者 git-init [1] 自動猜到。默認(rèn)情況下,以 “/.git” 結(jié)尾的存儲庫被假定為不是空(空=假),而所有其他存儲庫被假定為空(空=真)。

core.worktree

將路徑設(shè)置為工作樹的根目錄。如果GIT_COMMON_DIR設(shè)置了環(huán)境變量,core.worktree 將被忽略,不用于確定工作樹的根。這可以被GIT_WORK_TREE環(huán)境變量和--work-tree命令行選項覆蓋。該值可以是絕對路徑,也可以是相對于 .git 目錄的路徑,該目錄由 --git-dir 或 GIT_DIR 指定,或者自動發(fā)現(xiàn)。如果指定了 --git-dir 或 GIT_DIR ,但沒有指定 --work-tree , GIT_WORK_TREE 和 core.worktree ,則當(dāng)前工作目錄被視為工作樹的頂層。

請注意,即使將該變量設(shè)置在目錄的 “.git” 子目錄中的配置文件中,其值也不同于后者目錄(例如 “/path/to/.git/config” 將 core.worktree 設(shè)置為“/不同/路徑”),這很可能是錯誤配置。在 “/ path / to” 目錄中運行 Git 命令仍然使用 “/ different / path” 作為工作樹的根目錄,除非你知道自己在做什么,否則會引起混淆(例如,你正在創(chuàng)建只讀的快照相同的索引指向與存儲庫常用工作樹不同的位置)。

core.logAllRefUpdates

啟用 reflog 。$GIT_DIR/logs/<ref>通過附加新的和舊的 SHA-1 ,日期/時間和更新原因,但只有當(dāng)文件存在時,才會將 ref <ref> 的更新記錄到文件“ ”中。如果這個配置變量設(shè)置為true,缺少“ $GIT_DIR/logs/<ref>”文件是自動創(chuàng)建的分支頭(即下refs/heads/),遠程裁判(即下refs/remotes/),注意裁判(即下refs/notes/),和符號 ref HEAD。如果它被設(shè)置為always,那么會自動為任何下方的 ref 創(chuàng)建缺失的 reflog refs/

此信息可用于確定“2天前”分支的提示是什么。

默認(rèn)情況下,此值在具有與其關(guān)聯(lián)的工作目錄的存儲庫中為 true ,在裸存儲庫中默認(rèn)為 false 。

core.repositoryFormatVersion

標(biāo)識存儲庫格式和布局版本的內(nèi)部變量。

core.sharedRepository

當(dāng)group(或true)時,存儲庫可以在一個組中的多個用戶之間共享(確保所有文件和對象都是可寫組的)。當(dāng)all(或worldeverybody)時,存儲庫將為所有用戶可讀,另外還可以分組。當(dāng)umask(或false)時,Git 將使用由 umask(2)報告的權(quán)限。何時0xxx,哪里0xxx是八進制數(shù),存儲庫中的文件將具有此模式值。0xxx將覆蓋用戶的 umask 值(而其他選項將只覆蓋用戶的 umask 值的所需部分)。示例:0660將使所有者和組能夠進行 repo 讀/寫,但其他人無法訪問(相當(dāng)于group除非umask是例如0022)。0640是一個組可讀但不可分組寫的存儲庫。請參閱 git-init [1]。默認(rèn)為False。

core.warnAmbiguousRefs

如果為 true,Git 會警告您,如果您傳遞的 ref 名稱不明確,并且可能與存儲庫中的多個 ref 匹配。默認(rèn)情況下為真。

core.compression

一個整數(shù)-1..9,表示默認(rèn)的壓縮級別。-1是 zlib 的默認(rèn)值。0代表沒有壓縮,1..9代表不同的速度/尺寸折衷,9代表最慢。如果設(shè)置,則會為其他壓縮變量(如core.looseCompression和)提供默認(rèn)值pack.compression

core.looseCompression

一個整數(shù)-1..9,表示不在包文件中的對象的壓縮級別。-1是 zlib 的默認(rèn)值。0代表沒有壓縮,1..9代表不同的速度/尺寸折衷,9代表最慢。如果未設(shè)置,則默認(rèn)為 core.compression 。如果沒有設(shè)置,默認(rèn)為1(最佳速度)。

core.packedGitWindowSize

在單個映射操作中映射到內(nèi)存中的包文件的字節(jié)數(shù)。較大的窗口大小可能允許您的系統(tǒng)更快速地處理較小數(shù)量的大型文件包文件。由于增加了對操作系統(tǒng)內(nèi)存管理器的調(diào)用,較小的窗口大小會對性能產(chǎn)生負(fù)面影響,但可能會在訪問大量大型文件包時提高性能。

如果在編譯時設(shè)置 NO_MMAP ,則默認(rèn)值為1 MiB ,否則在32位平臺上為32 MiB ,在64位平臺上為1 GiB 。這對所有用戶/操作系統(tǒng)都應(yīng)該是合理的。你可能不需要調(diào)整這個值。

常見的單元后綴k,mg支持。

core.packedGitLimit

從包文件同時映射到內(nèi)存的最大字節(jié)數(shù)。如果 Git 需要一次訪問超過這么多字節(jié)來完成操作,它將取消映射現(xiàn)有區(qū)域以回收進程中的虛擬地址空間。

32位平臺上的默認(rèn)值為256 MiB ,64位平臺上的默認(rèn)值為32 TiB(實際無限制)。對于所有用戶/操作系統(tǒng)來說,這應(yīng)該是合理的,但最大的項目除外。你可能不需要調(diào)整這個值。

常見的單元后綴k,mg支持。

core.deltaBaseCacheLimit

為了緩存可能被多個分類對象引用的基礎(chǔ)對象而預(yù)留的最大字節(jié)數(shù)。通過將整個解壓縮的基礎(chǔ)對象存儲在緩存中,Git 可以避免多次拆包和解壓縮常用的基礎(chǔ)對象。

所有平臺上的默認(rèn)值為96 MiB 。對于所有用戶/操作系統(tǒng)來說,這應(yīng)該是合理的,但最大的項目除外。你可能不需要調(diào)整這個值。

常見的單元后綴k,mg支持。

core.bigFileThreshold

大于此大小的文件將被縮減存儲,而不會嘗試增量壓縮。在不進行增量壓縮的情況下存儲大文件可以避免過多的內(nèi)存使用量,但會增加磁盤使用量。此外,大于此大小的文件始終視為二進制文件。

所有平臺上的默認(rèn)值為512 MiB 。對于大多數(shù)項目來說,這應(yīng)該是合理的,因為源代碼和其他文本文件仍然可以進行 delta 壓縮,但是較大的二進制媒體文件不會。

常見的單元后綴k,mg支持。

core.excludesFile

.gitignore((每個目錄)和)之外,指定文件的路徑名,該文件包含用于描述不打算跟蹤的路徑的模式.git/info/exclude。默認(rèn)為$XDG_CONFIG_HOME/git/ignore。如果$XDG_CONFIG_HOME未設(shè)置或為空,$HOME/.config/git/ignore則代替使用。見gitignore [5]。

core.askPass

交互式地詢問密碼的一些命令(例如 svn 和 http 接口)可以被告知使用通過該變量的值給出的外部程序??梢员?code>GIT_ASKPASS環(huán)境變量覆蓋。如果沒有設(shè)置,則回退到SSH_ASKPASS環(huán)境變量的值,否則,提示一個簡單的密碼。應(yīng)該給外部程序一個合適的提示符作為命令行參數(shù),并在其 STDOUT 上寫入密碼。

core.attributesFile

除了.gitattributes( per-directory )之外.git/info/attributes,Git 會查看此文件的屬性(請參閱 gitattributes [5] )。路徑擴展的制作方式與以前相同core.excludesFile。它的默認(rèn)值是$XDG_CONFIG_HOME/git/attributes。如果$XDG_CONFIG_HOME未設(shè)置或為空,$HOME/.config/git/attributes則代替使用。

core.hooksPath

默認(rèn)情況下,Git 會在$GIT_DIR/hooks目錄中查找你的鉤子。將其設(shè)置為不同的路徑,例如/etc/git/hooks,Git 將嘗試在該目錄中找到您的掛鉤,例如,/etc/git/hooks/pre-receive而不是在 $GIT_DIR/hooks/pre-receive。

路徑可以是絕對路徑或相對路徑。相對于掛鉤運行的目錄采取相對路徑(請參閱 githooks [5] 的“描述”部分)。

這個配置變量在你希望集中配置你的 Git 鉤子而不是在每個存儲庫上配置它們的情況下是有用的,或者作為一個更靈活和集中的替代方法來使init.templateDir你有一個你已經(jīng)改變了默認(rèn)鉤子的地方。

core.editor

諸如此類的命令commit以及tag允許您通過啟動編輯器來編輯消息的命令會在設(shè)置時使用此變量的值,并且GIT_EDITOR未設(shè)置環(huán)境變量。參見 git-var [1] 。

core.commentChar

諸如committag可讓您編輯消息的命令考慮以該字符注釋開頭的行,并在編輯器返回后將其刪除(默認(rèn)#)。

如果設(shè)置為“auto”,git-commit將選擇不是現(xiàn)有提交消息中任何行的開始字符的字符。

core.packedRefsTimeout

嘗試鎖定packed-refs文件時要重試的時間長度(以毫秒為單位)。值0意味著根本不會重試; -1意味著無限期地嘗試。默認(rèn)值是1000(即,重試1秒)。

sequence.editor

文本編輯器用于git rebase -i編輯 rebase 指令文件。該值用于在 shell 中進行解釋。它可以被GIT_SEQUENCE_EDITOR環(huán)境變量覆蓋。未配置時,將使用默認(rèn)的提交消息編輯器。

core.pager

供 Git 命令使用的文本查看器(例如,less)。該值旨在由 shell 解釋。首選項的順序是$GIT_PAGER環(huán)境變量,然后是core.pager配置,然后$PAGER是編譯時(通常less)選擇的默認(rèn)值。

當(dāng)LESS環(huán)境變量未設(shè)置時,Git 將其設(shè)置為FRX(如果LESS設(shè)置了環(huán)境變量,則 Git 根本不會更改它)。如果你想有選擇地覆蓋 Git 的默認(rèn)設(shè)置LESS,你可以設(shè)置core.pager為例如less -S。這將通過 Git 傳遞給 shell ,該命令將最終命令轉(zhuǎn)換為LESS=FRX less -S。環(huán)境不會設(shè)置該S選項,但命令行會執(zhí)行此操作,從而減少截斷長行的問題。同樣,設(shè)置core.pagerless -+FF從命令行中禁用環(huán)境指定的選項,取消激活“如果一個屏幕退出”行為less。人們可以特別激活某些特定命令的標(biāo)志:例如,設(shè)置pager.blameless -S啟用行截斷僅用于git blame

同樣,當(dāng)LV環(huán)境變量未設(shè)置時,Git 將其設(shè)置為-c。您可以通過LV使用另一個值或設(shè)置core.pager為導(dǎo)出來覆蓋此設(shè)置lv +c。

core.whitespace

用逗號分隔的常見空白問題列表需要注意。git diffcolor.diff.whitespace用來突出顯示它們,并將git apply --whitespace=error它們視為錯誤。你可以用前綴-來禁用它們中的任何一個(例如-trailing-space):

  • blank-at-eol 將行末尾的空格視為錯誤(默認(rèn)情況下啟用)。

  • space-before-tab 將行的最初縮進部分中的制表符之前出現(xiàn)的空格字符視為錯誤(默認(rèn)情況下啟用)。

  • indent-with-non-tab 將用空格字符縮進的行代替等效的制表符作為錯誤(默認(rèn)情況下未啟用)。

  • tab-in-indent 將行的初始縮進部分中的制表符視為錯誤(默認(rèn)情況下未啟用)。

  • blank-at-eof 將在文件末尾添加的空行視為錯誤(默認(rèn)情況下啟用)。

  • trailing-space是一種短手為覆蓋blank-at-eolblank-at-eof。

  • cr-at-eol將行結(jié)束處的回車符視為行結(jié)束符的一部分,即使用它,trailing-space如果此回車符之前的字符不是空格(默認(rèn)情況下未啟用),則不會觸發(fā)。

  • tabwidth=<n>告訴標(biāo)簽占據(jù)多少個字符位置; 這indent-with-non-tab與 Git 修復(fù)tab-in-indent錯誤有關(guān)。默認(rèn)的標(biāo)簽寬度是8.允許的值是1到63。

core.fsyncObjectFiles

這個布爾值將fsync()在寫入目標(biāo)文件時啟用。

這是一個浪費時間和精力的文件系統(tǒng),它可以正確地命令數(shù)據(jù)寫入,但對于不使用日記功能(傳統(tǒng) UNIX 文件系統(tǒng))的文件系統(tǒng)或只有日志元數(shù)據(jù)而不是文件內(nèi)容( OS X的HFS +或 Linux 帶有 “data = writeback” 的 ext3 )。

core.preloadIndex

為類似的操作啟用并行索引預(yù)加載 git diff

這可以加快像操作git diffgit status特別是像 NFS 有弱緩存語義,因此相對較高的 IO 延遲的文件系統(tǒng)。啟用后,Git 將并行執(zhí)行與文件系統(tǒng)數(shù)據(jù)的索引比較,從而允許重疊 IO 。默認(rèn)為 true 。

core.createObject

您可以將其設(shè)置為link,在這種情況下,將使用硬鏈接并刪除源,以確保創(chuàng)建對象不會覆蓋現(xiàn)有對象。

在某些文件系統(tǒng)/操作系統(tǒng)組合上,這是不可靠的。將此配置設(shè)置設(shè)置為rename此處; 但是,這將刪除確?,F(xiàn)有對象文件不會被覆蓋的檢查。

core.notesRef

顯示提交消息時,還會顯示存儲在給定 ref 中的注釋。參考資料必須完全合格。如果給定的 ref 不存在,這不是錯誤,但意味著不應(yīng)打印任何注釋。

該設(shè)置默認(rèn)為 “refs / notes / commits” ,并且可以被GIT_NOTES_REF環(huán)境變量覆蓋。參見 git-notes [1] 。

core.sparseCheckout

啟用“sparse checkout”功能。有關(guān)更多信息,請參閱 git-read-tree [1] 中的 “Sparse checkout” 一節(jié)。

core.abbrev

設(shè)置長度對象名稱縮寫為。如果未指定或設(shè)置為 “auto” ,則根據(jù)存儲庫中的打包對象的近似數(shù)量計算適當(dāng)?shù)闹担@對于縮寫對象名稱在一段時間內(nèi)保持唯一性來說足夠了。最小長度是4。

add.ignoreErrors   add.ignore-errors (deprecated)

git add當(dāng)由于索引錯誤而無法添加某些文件時,告訴繼續(xù)添加文件。相當(dāng)于--ignore-errors git-add [1] 的選項。add.ignore-errors已被棄用,因為它不遵循配置變量的通常命名約定。

alias.*

git [1] 命令包裝的命令別名 - 例如在定義 “alias.last = cat-file commit HEAD” 之后,調(diào)用 “git last” 等同于 “git cat-file commit HEAD” 。為避免混淆和腳本使用的麻煩,隱藏現(xiàn)有 Git 命令的別名將被忽略。參數(shù)用空格分開,支持常用的 shell 引用和轉(zhuǎn)義。引用對或反斜杠可用于引用它們。

如果別名擴展以感嘆號為前綴,則將其視為 shell 命令。例如,定義 “alias.new =!gitk  -  all  -  not ORIG_HEAD” ,調(diào)用 “git new” 相當(dāng)于運行shell命令 “gitk  -  all  -  not ORIG_HEAD” 。請注意,shell 命令將從存儲庫的頂級目錄中執(zhí)行,該目錄可能不一定是當(dāng)前目錄。GIT_PREFIX被設(shè)置為git rev-parse --show-prefix從原始當(dāng)前目錄運行返回。參見 git-rev-parse [1] 。

am.keepcr

如果為 true,那么 git-am 會調(diào)用 git-mailsplit 來獲取帶有參數(shù)的 mbox 格式的補丁--keep-cr。在這種情況下,git-mailsplit 不會\r從以\r\n。結(jié)尾的行中刪除??梢酝ㄟ^--no-keep-cr從命令行提供來覆蓋。參見 git-am [1] ,git-mailsplit [1] 。

am.threeWay

默認(rèn)情況下,git am如果修補程序不能干凈地應(yīng)用,將會失敗。當(dāng)設(shè)置為true時,git am如果補丁記錄了它應(yīng)該應(yīng)用到的斑點的標(biāo)識,并且我們在本地提供了這些斑點(相當(dāng)于--3way從命令行提供選項),則此設(shè)置將告訴回退3路合并。默認(rèn)為false。見 git-am [1] 。

apply.ignoreWhitespace

設(shè)置為change時,將以與選項相同的方式告訴git apply忽略空白中的更改--ignore-space-change。當(dāng)設(shè)置為:no,none,never 時,false  表示git apply尊重所有空白區(qū)別。參見 git-apply [1]。

apply.whitespace

講述git apply如何處理空格,以同樣的方式作為--whitespace選項。參見 git-apply [1]。

branch.autoSetupMerge

告訴git branchgit checkout設(shè)置新分支,以便 git-pull [1] 將從起點分支適當(dāng)合并。請注意,即使未設(shè)置此選項,也可以使用--track--no-track選項為每個分支選擇此行為。有效的設(shè)置是:false- 沒有自動設(shè)置完成; true - 當(dāng)起始點是遠程跟蹤分支時,自動設(shè)置完成; always - 當(dāng)起始點是本地分支或遠程跟蹤分支時,自動設(shè)置完成。該選項默認(rèn)為 true 。

branch.autoSetupRebase

當(dāng)一個新的分支被創(chuàng)建git branchgit checkout跟蹤另一個分支時,這個變量告訴 Git 設(shè)置 pull 來代替合并(參見 “branch。<name> .rebase” )。何時never,rebase 永遠不會自動設(shè)置為 true 。何時local,其他地方分行的追蹤分行的 rebase 設(shè)置為 true 。remote對于遠程跟蹤分支的跟蹤分支,當(dāng) rebase 設(shè)置為 true 時。何時always,所有跟蹤分支的 rebase 將設(shè)置為 true 。有關(guān)如何設(shè)置分支以跟蹤其他分支的詳細(xì)信息,請參閱 “branch.autoSetupMerge” 。該選項默認(rèn)為從不。

branch.<name>.remote

在分支<名稱>上時,它會告知git fetch以及git push從哪個遠程獲取/推送。推送到遠程可能會覆蓋remote.pushDefault(對于所有分支機構(gòu))。推送到當(dāng)前分支的遠程可能會被進一步覆蓋branch.<name>.pushRemote。如果沒有配置遠程設(shè)備,或者您不在任何分支上,則默認(rèn)為origin進行抓取和remote.pushDefault推送。此外,.(一段時間)是當(dāng)前的本地存儲庫(一個點存儲庫),請參見branch.<name>.merge下面的最終注釋。

branch.<name>.pushRemote

在分支 <name> 上時,它將覆蓋branch.<name>.remote推送。它也覆蓋remote.pushDefault從分支 <name> 推送。當(dāng)你從一個地方(例如你的上游)拉到另一個地方(例如你自己的發(fā)布庫)時,你需要設(shè)置remote.pushDefault指定遠程推送到所有分支,并使用這個選項覆蓋特定的科。

branch.<name>.merge

與branch。<name> .remote 一起定義給定分支的上游分支。它告訴git fetch/ git pull/ git rebase該分支合并,也可以影響git push(見 push.default )。當(dāng)在分支 <name> 中時,它告訴git fetch默認(rèn)refspec被標(biāo)記為在 FETCH_HEAD 中合并。該值的處理方式與 refspec 的遠程部分相同,并且必須匹配從 “branch。<name> .remote” 給出的來自遠程的 ref 。合并信息由git pull(首先調(diào)用git fetch)查找用于合并的默認(rèn)分支使用。如果沒有這個選項,git pull默認(rèn)情況下合并第一個獲取的 refspec 。指定多個值以獲得章魚合并。如果你想設(shè)置git pull以便它從本地存儲庫中的另一個分支合并到 <name> 中,可以將分支。<name> .merge 指向所需的分支,并使用分支的相對路徑設(shè)置.(句點)。<name> .remote 。

branch.<name>.mergeOptions

設(shè)置合并到分支 <name> 的默認(rèn)選項。語法和支持的選項與 git-merge [1] 的相同,但包含空白字符的選項值目前不受支持。

branch.<name>.rebase

如果為 true,則在獲取的分支上重新分支分支 <name> ,而不是在運行 “git pull” 時將默認(rèn)分支與默認(rèn)分支合并。請參閱 “pull.rebase” 以非分支特定的方式執(zhí)行此操作。

當(dāng)保存時,也會傳遞--preserve-merges到,git rebase以便本地提交的合并提交不會因運行而變得平坦git pull。

當(dāng)值為時interactive,rebase 以交互模式運行。

注意:這是一個可能危險的操作; 你,除非你理解的含義使用它(請查看 git-rebase[1]了解詳細(xì)信息)。

branch.<name>.description

分支描述,可以用編輯git branch --edit-description。分支描述將自動添加到格式補丁封面信或請求摘要中。

browser.<tool>.cmd

指定要調(diào)用指定瀏覽器的命令。指定的命令在 shell 中使用作為參數(shù)傳遞的 URL 進行評估。(請參閱 git-web {litdd} 瀏覽[1]。)

browser.<tool>.path

覆蓋可能用于瀏覽 HTML 幫助的指定工具的路徑(請參閱-w git-help [1] 中的選項)或 gitweb 中的工作存儲庫(請參閱 git-instaweb [1] )。

clean.requireForce

一個布爾值使 git-clean 除非給出 -f ,-i 或 -n ,否則不會執(zhí)行任何操作。默認(rèn)為 true 。

color.branch

在 git-branch [1] 的輸出中啟用/禁用顏色的布爾值??梢栽O(shè)置為always,false(或never)或auto(或true),在這種情況下,顏色僅在輸出到終端時使用。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

color.branch.<slot>

使用自定義顏色進行分支著色。<slot>current(當(dāng)前分支),local(本地分支),remote(遠程跟蹤分支在 refs / remotes / ),upstream(上游跟蹤分支),plain(其他參考)之一。

color.diff

是否使用 ANSI 轉(zhuǎn)義序列為補丁添加顏色。如果設(shè)置為always,git-diff [1],git-log [1] 和 git-show [1] 將為所有補丁使用顏色。如果設(shè)置為trueauto,則這些命令僅在輸出到終端時才使用顏色。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

這不會影響 git-format-patch [1] 或git-diff-*管道命令??梢允褂迷?code>--color[=<when>]選項在命令行上覆蓋。

color.diff.<slot>

使用自定義顏色進行差異著色。<slot>指定補丁的哪個部分使用指定的顏色,并且是context(上下文文本 - plain是歷史同義詞),meta(元信息),frag( hunk 標(biāo)題),func( hunk 標(biāo)題中的功能),old(刪除的行),new(添加的行),commit(提交標(biāo)題)或whitespace(突出顯示空白錯誤)。

color.decorate.<slot>

使用自定義顏色進行git log --decorate輸出。<slot>是以下之一branch,remoteBranch,tagstashHEAD為本地分支機構(gòu),遠程跟蹤分支,標(biāo)簽,分別藏匿和 HEAD 。

color.grep

設(shè)置為always時,始終突出顯示匹配項。何時false(或never),永遠不會。設(shè)置為true或時auto,僅在輸出寫入終端時使用顏色。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

color.grep.<slot>

使用自定義顏色進行 grep 著色。<slot>指定使用指定顏色的線的哪一部分,并且是其中之一

context

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

filename

文件名前綴(不使用時-h

function

功能名稱行(使用時-p

linenumber

行號前綴(使用時-n

match

匹配的文本(同設(shè)定matchContextmatchSelected

matchContext

匹配上下文行中的文本

matchSelected

匹配選定行中的文本

selected

選定行中不匹配的文本

separator

上的線之間的字段分離器(:,-,和=)和厚片之間(--

color.interactive

設(shè)置為時always,總是使用交互式提示和顯示的顏色(例如 “git-add --interactive” 和 “git-clean --interactive” 使用的顏色)。當(dāng)錯誤(或never),從不。設(shè)置為true或時auto,僅在輸出到終端時才使用顏色。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

color.interactive.<slot>

使用自定義的顏色git add --interactivegit clean --interactive輸出。<slot>可以是prompt,header,helperror,用于從交互式命令四個不同類型的正常輸出的。

color.pager

當(dāng)傳呼機正在使用時啟用/禁用彩色輸出的布爾值(默認(rèn)值為 true )。

color.showBranch

在 git-show-branch [1] 的輸出中啟用/禁用顏色的布爾值??梢栽O(shè)置為alwaysfalse(或never)或auto(或true),在這種情況下,顏色僅在輸出到終端時使用。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

color.status

在 git-status [1] 的輸出中啟用/禁用顏色的布爾值??梢栽O(shè)置為always,false(或never)或auto(或true),在這種情況下,顏色僅在輸出到終端時使用。如果未設(shè)置,則使用該值color.uiauto默認(rèn)情況下)。

color.status.<slot>

使用自定義顏色進行狀態(tài)著色。<slot>header(狀態(tài)消息的標(biāo)題文本),addedupdated(已添加但未提交的changed文件),(已更改但未添加到索引中的untracked文件),(未由 Git 跟蹤的文件),branch(當(dāng)前分支),nobranchno branch警告顯示的顏色,默認(rèn)為紅色)localBranchremoteBranch(當(dāng)分支和跟蹤信息以狀態(tài)短格式顯示時,分別為本地和遠程分支名稱)或unmerged(未合并更改的文件)。

color.ui

此變量確定變量的默認(rèn)值,例如color.diffcolor.grep控制每個命令系列的顏色使用。隨著更多命令學(xué)習(xí)配置以設(shè)置--color選項的默認(rèn)值,其范圍將擴大。將其設(shè)置為false或者never如果您希望 Git 命令不使用顏色,除非通過某些其他配置或--color選項明確啟用。將它設(shè)置為always你希望不希望所有的輸出機消費使用的顏色,來trueauto(這是因為 Git 的1.8.4默認(rèn)值),如果你希望在寫入到終端,輸出使用的顏色。

column.ui

指定是否應(yīng)以列的形式輸出支持的命令。該變量由用空格或逗號分隔的令牌列表組成:

這些選項控制何時啟用該功能(默認(rèn)為never):

always

始終顯示在列中

never

從不顯示在列中

auto

如果輸出到終端,則以列顯示

這些選項控制布局(默認(rèn)為column)。將上述任何暗示always,如果沒有的alwaysneverauto指定。

column

在行之前填充列

row

在列之前填充行

plain

顯示在一列中

最后,這些選項可以與布局選項(默認(rèn)為nodense)結(jié)合使用:

dense

制造不同尺寸的列以利用更多的空間

nodense

制作相同大小的列

column.branch

指定是否git branch在列中輸出分支列表。詳情請參閱column.ui。

column.clean

列出項目時指定布局git clean -i,它總是以列顯示文件和目錄。詳情請參閱column.ui。

column.status

指定是否git status在列中輸出未跟蹤文件。詳情請參閱column.ui。

column.tag

指定是否git tag在列中輸出標(biāo)簽列表。詳情請參閱column.ui。

commit.cleanup

此設(shè)置將覆蓋該--cleanup選項的默認(rèn)值git commit。有關(guān)詳細(xì)信息,請參閱 git-commit [1] 。如果您始終想要#在日志消息中保留以注釋字符開頭的行,那么更改默認(rèn)值可能很有用,在這種情況下您會這樣做git config commit.cleanup whitespace(請注意,您必須自己移除#以提交日志模板開頭的幫助行,如果你這樣做)。

commit.gpgSign

一個布爾值,指定是否所有提交都應(yīng)該進行 GPG 簽名。在執(zhí)行諸如 rebase 之類的操作時使用此選項可能會導(dǎo)致大量提交被簽名。使用代理可能會很方便,以避免多次輸入您的 GPG 密碼。

commit.status

使用編輯器準(zhǔn)備提交消息時,在提交消息模板中啟用/禁用包含狀態(tài)信息的布爾值。默認(rèn)為 true 。

commit.template

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

commit.verbose

一個 boolean 或 int 來指定詳細(xì)級別git commit。請參閱 git-commit [1] 。

credential.helper

指定需要用戶名或密碼憑證時調(diào)用的外部助手; 幫助者可以咨詢外部存儲器以避免提示用戶輸入憑證。請注意,可能會定義多個助手。有關(guān)詳細(xì)信息,請參閱 gitcredentials [7] 。

credential.useHttpPath

在獲取憑證時,請考慮 http 或 https URL 的“路徑”組件非常重要。默認(rèn)為 false 。請參閱 gitcredentials [7] 了解更多信息。

credential.username

如果沒有為網(wǎng)絡(luò)身份驗證設(shè)置用戶名,則默認(rèn)使用此用戶名。請參閱憑證。<context>.* 以下和 gitcredentials [7] 。

credential.<url>.*

以上任何 credential.* 選項都可以選擇性地應(yīng)用于某些憑證。例如,“credential.https://example.com.username” 將只為 https 連接到 example.com 設(shè)置默認(rèn)用戶名。有關(guān) URL 如何匹配的詳細(xì)信息,請參閱 gitcredentials [7] 。

credentialCache.ignoreSIGHUP

Tell git-credential-cache—daemon to ignore SIGHUP, instead of quitting.

diff.autoRefreshIndex

在使用git diff與工作樹文件進行比較時,不要將僅統(tǒng)計更改視為已更改。相反,靜靜地運行git update-index --refresh以更新其工作樹中的內(nèi)容與索引中的內(nèi)容匹配的路徑的緩存統(tǒng)計信息。該選項默認(rèn)為 true 。請注意,這僅影響git diff瓷器,而不影響較低等級的diff命令git diff-files。

diff.dirstat

以逗號分隔的--dirstat參數(shù)列表,指定--dirstat選項的默認(rèn)行為,以 git-diff [1] and friends. The defaults can be overridden on the command line (using --dirstat = < param1,param2,... > ). The fallback defaults (when not changed bydiff.dirstat ) are更改,非累積,3`。以下參數(shù)可用:

changes

通過計算已從源中刪除或添加到目標(biāo)的行來計算 dirstat 數(shù)字。這會忽略文件中純代碼移動的數(shù)量。換句話說,重新排列文件中的行數(shù)不會與其他更改一樣多。這是沒有給出參數(shù)時的默認(rèn)行為。

lines

通過執(zhí)行常規(guī)基于行的差異分析來計算 dirstat 數(shù)字,并且將移除/添加的行數(shù)相加。(對于二進制文件,取而代之的是計算64字節(jié)的塊,因為二進制文件沒有自然的行概念)。這是一種--dirstatchanges行為更為昂貴的行為,但它可以像其他更改一樣對文件中的重新排列的行進行計數(shù)。結(jié)果輸出與您從其他--*stat選項中獲得的結(jié)果一致。

files

通過計算更改的文件數(shù)量來計算 dirstat 數(shù)字。dirstat 分析中每個更改的文件都相同。這是計算上最便宜的--dirstat行為,因為它根本不需要查看文件內(nèi)容。

cumulative

計數(shù)父目錄的子目錄中的更改。請注意,使用時cumulative,報告的百分比總和可能超過100%。默認(rèn)(非累積)行為可以用noncumulative參數(shù)指定。

<limit>

整數(shù)參數(shù)指定截斷百分比(默認(rèn)為3%)。輸出中不顯示貢獻小于此百分比的目錄。

示例:以下內(nèi)容將計數(shù)已更改的文件,同時忽略占已更改文件總數(shù)少于10%的目錄,并累積父目錄中的子目錄計數(shù):files,10,cumulative。

diff.statGraphWidth

在 --stat  輸出中限制圖形部分的寬度。如果設(shè)置,則適用于所有生成 --stat 輸出的命令,格式補丁除外。

diff.context

使用 <n> 行上下文生成差異,而不是缺省值3.此值由 -U 選項覆蓋。

diff.interHunkContext

顯示差異 hunk 之間的上下文,直到指定的行數(shù),從而融合彼此接近的 hunk 。該值用作--inter-hunk-context命令行選項的默認(rèn)值。

diff.external

如果此配置變量已設(shè)置,則不會使用內(nèi)部差異機制執(zhí)行差異生成,而是使用給定的命令??梢杂?'GIT_EXTERNAL_DIFF' 環(huán)境變量覆蓋。如 git [1] 中的 “git Diffs” 所述,使用參數(shù)調(diào)用該命令。注意:如果您只想在文件的子集上使用外部差異程序,則可能需要使用 gitattributes [5] 。

diff.ignoreSubmodules

設(shè)置 --ignore 子模塊的默認(rèn)值。請注意,這僅影響git diff瓷器,而不影響較低等級的diff命令git diff-files。git checkout在報告未提交的更改時也會尊重此設(shè)置。將其設(shè)置為all禁用通常顯示的子模塊摘要,git commit并設(shè)置git status何時status.submoduleSummary設(shè)置,除非使用 --ignore-submodules 命令行選項覆蓋子摘要。該git submodule命令不受此設(shè)置的影響。

diff.mnemonicPrefix

如果設(shè)置,則git diff使用與標(biāo)準(zhǔn) “a /” 和 “b /” 不同的前綴對,具體取決于所比較的內(nèi)容。當(dāng)此配置生效時,反向差分輸出也會交換前綴的順序:

git diff

比較(i)ndex 和(w)ork 樹;

git diff HEAD

比較(c)ommit 和(w)ork 樹;

git diff --cached

比較(c)ommit 和(i)ndex ;

git diff HEAD:file1 file2

比較(o)bject 和(w)ork 樹實體;

git diff --no-index a b

比較兩個非 Git 事物(1)和(2)。

diff.noprefix

如果設(shè)置,git diff則不顯示任何源或目標(biāo)前綴。

diff.orderFile

指示如何在差異中排序文件的文件。有關(guān)-O詳細(xì)信息,請參閱 git-diff [1] 選項。如果diff.orderFile是相對路徑名,則將其視為相對于工作樹的頂部。

diff.renameLimit

執(zhí)行復(fù)制/重命名檢測時要考慮的文件數(shù)量; 相當(dāng)于git diff選項-l。

diff.renames

Git 是否以及如何檢測重命名。如果設(shè)置為 “false” ,則重命名檢測被禁用。如果設(shè)置為 “true” ,則啟用基本重命名檢測。如果設(shè)置為“復(fù)制”或“復(fù)制”,Git 也會檢測副本。默認(rèn)為 true 。請注意,這只會影響git diff瓷器,如 git-diff [1] 和 git-log [1] ,而不是像 git-diff-files [1] 這樣的低級命令。

diff.suppressBlankEmpty

一個布爾值,用于禁止在每個空輸出行之前打印空間的標(biāo)準(zhǔn)行為。默認(rèn)為 false 。

diff.submodule

指定顯示子模塊差異的格式?!皊hort” 格式只顯示范圍開始和結(jié)束處的提交名稱。“日志”格式列出了像 git-submodule [1] summary這樣的提交范圍。“diff” 格式顯示子模塊已更改內(nèi)容的內(nèi)嵌比較。默認(rèn)為“short”。

diff.wordRegex

POSIX 擴展正則表達式用于在執(zhí)行逐字差異計算時確定什么是“單詞”。與正則表達式匹配的字符序列是“單詞”,所有其他字符都是可忽略的空格。

diff.<driver>.command

自定義比較驅(qū)動程序命令。有關(guān)詳細(xì)信息,請參閱 gitattributes [5]。

diff.<driver>.xfuncname

diff 驅(qū)動程序應(yīng)該用來識別大塊頭的正則表達式。內(nèi)置模式也可以使用。有關(guān)詳細(xì)信息,請參閱 gitattributes [5] 。

diff.<driver>.binary

將此選項設(shè)置為 true 以使 diff 驅(qū)動程序?qū)⑽募暈槎M制文件。有關(guān)詳細(xì)信息,請參閱 gitattributes [5] 。

diff.<driver>.textconv

diff 驅(qū)動程序應(yīng)調(diào)用的命令來生成文件的文本轉(zhuǎn)換版本。轉(zhuǎn)換結(jié)果用于生成人類可讀的差異。有關(guān)詳細(xì)信息,請參閱 gitattributes [5] 。

diff.<driver>.wordRegex

diff 驅(qū)動程序應(yīng)該用來將文本分成一行的正則表達式。有關(guān)詳細(xì)信息,請參閱 gitattributes [5] 。

diff.<driver>.cachetextconv

將此選項設(shè)置為 true 可使 diff 驅(qū)動程序緩存文本轉(zhuǎn)換輸出。有關(guān)詳細(xì)信息,請參閱 gitattributes [5] 。

diff.tool

控制哪些 diff 工具被 git-difftool [1] 使用。此變量覆蓋在中配置的值merge.tool。下面的列表顯示了有效的內(nèi)置值。任何其他值都被視為自定義比較工具,并要求定義相應(yīng)的 difftool 。<tool> .cmd 變量。

  • araxis

  • bc

  • bc3

  • codecompare

  • deltawalker

  • diffmerge

  • diffuse

  • ecmerge

  • emerge

  • examdiff

  • gvimdiff

  • gvimdiff2

  • gvimdiff3

  • kdiff3

  • kompare

  • meld

  • opendiff

  • p4merge

  • tkdiff

  • vimdiff

  • vimdiff2

  • vimdiff3

  • winmerge

  • xxdiff

diff.indentHeuristic

將此選項設(shè)置true為啟用實驗啟發(fā)式方法,可以改變差異邊界以使修補程序更易于閱讀。

diff.algorithm

選擇一種差異算法。變體如下:

default, myers

基本 diff 算法。目前,這是默認(rèn)設(shè)置。

minimal

花費額外的時間來確保生成最小可能的差異。

patience

生成補丁時使用“耐心差異”算法。

histogram

該算法將耐心算法擴展為“支持低出現(xiàn)率的通用元素”。

diff.wsErrorHighlight

突出顯示空白的錯誤context,old或者new把差異線。多個值以逗號分隔,none重置以前的值,default將列表重置為newall簡寫為old,new,context??瞻族e誤使用了顏色color.diff.whitespace。命令行選項--ws-error-highlight=<kind>覆蓋此設(shè)置。

difftool.<tool>.path

覆蓋給定工具的路徑。如果您的工具不在 PATH 中,這非常有用。

difftool.<tool>.cmd

指定用于調(diào)用指定的 diff 工具的命令。指定的命令在 shell 中用以下可用變量評估:LOCAL設(shè)置為包含 diff 預(yù)映像REMOTE內(nèi)容的臨時文件的名稱,并設(shè)置為包含 diff 后映像內(nèi)容的臨時文件的名稱。

difftool.prompt

在每次調(diào)用 diff 工具前提示。

fastimport.unpackLimit

如果通過 git-fast-import [1] 導(dǎo)入的對象數(shù)量低于此限制,則這些對象將被解壓縮為松散的對象文件。但是,如果導(dǎo)入對象的數(shù)量等于或超過此限制,那么該包將作為一個包進行存儲。從快速導(dǎo)入存儲包可以使導(dǎo)入操作更快完成,特別是在慢速文件系統(tǒng)上。如果未設(shè)置,transfer.unpackLimit則使用其值。

fetch.recurseSubmodules

該選項可以設(shè)置為布爾值或設(shè)置為on-demand。將其設(shè)置為布爾變量時,會將抓取和拉動的行為更改為設(shè)置為 true 時無條件地遞歸到子模塊中,或者在設(shè)置為 false 時將其無法遞歸。設(shè)置為on-demand(默認(rèn)值)時,只有在其超級項目檢索用于更新子模塊參考的提交時,提取和拉取才會遞歸到已填充的子模塊中。

fetch.fsckObjects

如果它設(shè)置為 true ,git-fetch-pack 將檢查所有提取的對象。如果格式錯誤的對象或鏈接斷開,它將中止。中止的結(jié)果只是懸掛的對象。默認(rèn)為 false 。如果未設(shè)置,transfer.fsckObjects則使用其值。

fetch.unpackLimit

如果通過 Git 本地傳輸獲取的對象數(shù)量低于此限制,則這些對象將被解包為松散的對象文件。但是,如果接收到的對象數(shù)量等于或超過此限制,則在添加任何缺少的增量基數(shù)后,接收的數(shù)據(jù)包將作為一個包存儲。從推存儲包可以使推送操作更快完成,特別是在慢速文件系統(tǒng)上。如果未設(shè)置,transfer.unpackLimit則使用其值。

fetch.prune

如果為 true ,那么 fetch 將自動運行,就像--prune在命令行上給出選項一樣。另見remote.<name>.prune。

fetch.output

控制如何打印參考更新狀態(tài)。有效值是fullcompact。默認(rèn)值是full。有關(guān)詳細(xì)信息,請參見 git-fetch [1] 中的 OUTPUT 部分。

format.attach

啟用多部分/混合附件作為默認(rèn)值format-patch。該值也可以是一個雙引號字符串,它將啟用附件作為默認(rèn)值并將該值設(shè)置為邊界。請參閱 git-format-patch [1] 中的 --attach 選項。

format.from

提供--from format-patch 選項的默認(rèn)值。接受布爾值,或名稱和電子郵件地址。如果為 false ,format-patch 默認(rèn)為--no-from,直接在補丁郵件的 “From:” 字段中使用提交作者。如果為 true ,format-patch 將默認(rèn)為--from:在補丁郵件的“發(fā)件人:”字段中使用提交者標(biāo)識,如果不同,則在補丁郵件正文中包含“發(fā)件人:”字段。如果設(shè)置為非布爾值,format-patch 將使用該值而不是提交者標(biāo)識。默認(rèn)為 false 。

format.numbered

一個布爾值,可以啟用或禁用補丁主題中的序列號。它默認(rèn)為“自動”,只有在有多個補丁時才啟用它。通過將其設(shè)置為 “true” 或 “false” ,可以啟用或禁用所有消息。請參閱 git-format-patch [1] 中的 --numbered 選項。

format.headers

要通過郵件提交的補丁包含的其他電子郵件標(biāo)題。參見 git-format-patch [1] 。

format.to   format.cc

其他收件人將包含在通過郵件提交的補丁中。請參閱 git-format-patch [1] 中的 --to 和 --cc 選項。

format.subjectPrefix

format-patch 的默認(rèn)設(shè)置是輸出帶有[PATCH]主題前綴的文件。使用此變量來更改該前綴。

format.signature

format-patch 的默認(rèn)值是輸出包含 Git 版本號的簽名。使用此變量來更改該默認(rèn)值。將此變量設(shè)置為空字符串(“”)以抑制簽名生成。

format.signatureFile

與 format.signature 一樣工作,除了由該變量指定的文件內(nèi)容將用作簽名。

format.suffix

format-patch 的默認(rèn)值是輸出帶有后綴的文件.patch。使用此變量來更改該后綴(如果需要,請確保包含點)。

format.pretty

log / show / whatchanged 命令的默認(rèn)漂亮格式,請參閱 git-log [1],git-show [1],git-whatchanged [1]。

format.thread

默認(rèn)的線程風(fēng)格git format-patch??梢允遣紶栔祷?code>shallowor deep。shallow線程使得每一封郵件都可以回復(fù)該系列的頭部,頭部從封面信件,--in-reply-to第一個補丁郵件中按順序選擇。deep線程使每個郵件回復(fù)到前一個郵件。一個真正的布爾值是相同的shallow,而一個錯誤的值會禁用線程。

format.signOff

-s/--signoff默認(rèn)情況下允許啟用 format-patch 選項的布爾值。注意:將Signed-off-by:行添加到補丁應(yīng)該是有意識的行為,并且意味著您證明您有權(quán)在相同的開源許可下提交此項工作。請參閱SubmittingPatches文檔以作進一步討論。

format.coverLetter

一個布爾值,用于控制是否在調(diào)用 format-patch 時生成封面字母,但另外可以設(shè)置為“auto”,以便僅在存在多個修補程序時才生成封面字母。

format.outputDirectory

設(shè)置一個自定義目錄來存儲結(jié)果文件,而不是當(dāng)前的工作目錄。

format.useAutoBase

--base=auto默認(rèn)情況下允許啟用 format-patch 選項的布爾值。

filter.<driver>.clean

簽入時用于將工作樹文件的內(nèi)容轉(zhuǎn)換為斑點的命令。有關(guān)詳細(xì)信息,請參閱 gitattributes [5]。

filter.<driver>.smudge

用于在簽出時將 blob 對象的內(nèi)容轉(zhuǎn)換為工作樹文件的命令。有關(guān)詳細(xì)信息,請參閱 gitattributes [5]。

fsck.<msg-id>

允許覆蓋特定消息標(biāo)識的消息類型(錯誤,警告或忽略),例如missingEmail

為了方便起見,fsck 在錯誤/警告前添加了消息 ID,例如“missingEmail:invalid author / committer line  -  missing email”意味著該設(shè)置fsck.missingEmail = ignore將隱藏該問題。

此功能旨在支持使用舊版存儲庫,而這些存儲庫在不發(fā)生破壞性更改的情況下無法修復(fù)。

fsck.skipList

已知以非致命方式破壞的對象名稱的排序列表(即每行一個 SHA-1)的路徑應(yīng)被忽略。如果盡早提交包含可安全忽略的錯誤(如無效的提交者電子郵件地址)的應(yīng)用程序,則應(yīng)接受已建立的項目,此功能非常有用。注意:使用此設(shè)置不能跳過損壞的對象。

gc.aggressiveDepth

深度參數(shù)用于由 delta 壓縮算法使用git gc --aggressive。默認(rèn)值為50。

gc.aggressiveWindow

窗口大小參數(shù)用于由 delta 壓縮算法使用git gc --aggressive。這默認(rèn)為250。

gc.auto

如果存儲庫中的這些松散對象的數(shù)量大約超過了這個數(shù)量,git gc --auto則會將它們打包。一些 Porcelain 命令使用此命令不時執(zhí)行輕量級垃圾回收。默認(rèn)值為6700.將其設(shè)置為0將禁用它。

gc.autoPackLimit

如果*.keep存儲庫中存在多個未標(biāo)記文件的包,則會git gc --auto將它們合并到一個更大的包中。默認(rèn)值為50.將其設(shè)置為0將禁用它。

gc.autoDetach

git gc --auto立即返回,并在后臺運行,如果系統(tǒng)支持它。默認(rèn)值是 true。

gc.logExpiry

如果文件 gc.log 存在,則git gc --auto不會運行,除非該文件比gc.logExpiry舊版本更老。默認(rèn)是“1.day”。請參閱gc.pruneExpire更多指定其值的方法。

gc.packRefs

git pack-refs在存儲庫中運行會使其無法通過1.5.1.2之前的Git版本在諸如HTTP之類的啞傳輸上進行克隆。這個變量決定了是否git gc運行git pack-refs??梢詫⑵湓O(shè)置為notbare在所有非裸回購庫中啟用它,或者可以將其設(shè)置為布爾值。默認(rèn)是true

gc.pruneExpire

什么時候git gc運行,它會調(diào)用prune --expire 2.weeks.ago。用此配置變量覆蓋寬限期。值“now”可用于禁用此寬限期并且總是立即修剪不可到達的對象,或者可以使用“never”來抑制修剪。此功能有助于防止在git gc與另一個寫入存儲庫的進程同時運行時發(fā)生損壞; 請參閱git-gc [1]的“NOTES”部分。

gc.worktreePruneExpire

當(dāng)git gc運行時,它調(diào)用git worktree prune --expire 3.months.ago。此配置變量可用于設(shè)置不同的寬限期。值“now”可用于禁用寬限期并$GIT_DIR/worktrees立即修剪,或者“never”可用于抑制修剪。

gc.reflogExpire   gc.<pattern>.reflogExpire

git reflog expire刪除比此時早的reflog條目; 默認(rèn)為90天。值“now”立即使所有條目到期,并且“never”完全禁止到期。在中間,使用“<pattern>”(例如“refs / stash”),該設(shè)置僅適用于匹配<pattern>的ref。

gc.reflogExpireUnreachable   gc.<pattern>.reflogExpireUnreachable

git reflog expire刪除比這次更早的reflog條目,并且不能從當(dāng)前提示中獲得; 默認(rèn)為30天。值“now”立即使所有條目到期,并且“never”完全禁止到期。在中間使用“<pattern>”(例如“refs / stash”),該設(shè)置僅適用于匹配<pattern>的ref。

gc.rerereResolved

您以前解決的沖突合并記錄在git rerere gc運行時會保留這么多天。缺省值是60天。參見git-rerere [1]。

gc.rerereUnresolved

運行時,您尚未解決的沖突合并記錄會保留多天git rerere gc。默認(rèn)值是15天。參見git-rerere [1]。

gitcvs.commitMsgAnnotation

追加此字符串到每個提交消息。設(shè)置為空字符串以禁用此功能。默認(rèn)為“通過git-CVS模擬器”。

gitcvs.enabled

是否為此存儲庫啟用了 CVS 服務(wù)器接口。參見git-cvsserver [1]。

gitcvs.logFile

指向 CVS 服務(wù)器接口的日志文件的路徑...記錄各種東西。參見git-cvsserver [1]。

gitcvs.usecrlfattr

如果為 true,則服務(wù)器將查找文件的行尾轉(zhuǎn)換屬性以確定-k要使用的模式。如果這些屬性強制 Git 將文件視為文本,則該-k模式將保留為空,以便 CVS 客戶端將其視為文本。如果他們禁止文本轉(zhuǎn)換,文件將被設(shè)置為-kb模式,這會抑制客戶端可能執(zhí)行的任何換行。如果屬性不允許確定文件類型,則gitcvs.allBinary使用該屬性。見gitattributes [5]。

gitcvs.allBinary

如果gitcvs.usecrlfattr不解決使用正確的-kb模式,則使用此選項。如果為true,則所有未解析的文件將以模式發(fā)送到客戶端-kb。這會導(dǎo)致客戶端將它們視為二進制文件,這會壓制任何換行符,否則可能會這樣做。或者,如果它被設(shè)置為“猜測”,則檢查文件的內(nèi)容以確定它是否是二進制的,類似于core.autocrlf。

gitcvs.dbName

數(shù)據(jù)庫由 git-cvsserver 用來緩存來自 Git 倉庫的修訂信息。確切的含義取決于使用的數(shù)據(jù)庫驅(qū)動程序,對于 SQLite(這是默認(rèn)驅(qū)動程序),這是一個文件名。支持變量替換(詳情請參閱git-cvsserver [1])。不能包含分號(;)。默認(rèn):%Ggitcvs.%m.sqlite

gitcvs.dbDriver

使用 Perl DBI 驅(qū)動程序。你可以在這里指定任何可用的驅(qū)動程序,但它可能不起作用。git-cvsserver已經(jīng)過測試DBD::SQLite,報告可以使用DBD::Pg,并報告不能使用DBD::mysql。實驗功能。不能包含雙冒號(:)。默認(rèn):SQLite。參見git-cvsserver [1]。

gitcvs.dbUser, gitcvs.dbPass

數(shù)據(jù)庫用戶和密碼。只有在設(shè)置時才有用gitcvs.dbDriver,因為SQLite 沒有數(shù)據(jù)庫用戶和/或密碼的概念。gitcvs.dbUser支持變量替換(詳見git-cvsserver [1])。

gitcvs.dbTableNamePrefix

數(shù)據(jù)庫表名稱前綴。用于所使用的任何數(shù)據(jù)庫表的名稱,允許單個數(shù)據(jù)庫用于多個存儲庫。支持變量替換(詳情請參閱 git-cvsserver [1])。任何非字母字符將被替換為下劃線。

所有 gitcvs 變量,除了gitcvs.usecrlfattrgitcvs.allBinary也可以被指定為gitcvs.<access_method>.<varname>(其中access_method是“ext”和“pserver”之一),使它們僅適用于給定的訪問方法。

gitweb.category   gitweb.description   gitweb.owner   gitweb.url

有關(guān)說明,請參閱gitweb [1]。

gitweb.avatar   gitweb.blame   gitweb.grep   gitweb.highlight   gitweb.patches   gitweb.pickaxe   gitweb.remote_heads   gitweb.showSizes   gitweb.snapshot

有關(guān)說明,請參閱gitweb.conf [5]。

grep.lineNumber

如果設(shè)置為true,則-n默認(rèn)啟用選項。

grep.patternType

設(shè)置默認(rèn)的匹配行為。使用值basic,extendedfixed,或perl將啟用--basic-regexp--extended-regexp,--fixed-strings,或--perl-regexp相應(yīng)的選項,而值default將返回到默認(rèn)匹配行為。

grep.extendedRegexp

如果設(shè)置為 true,則--extended-regexp默認(rèn)啟用選項。當(dāng)該grep.patternType選項設(shè)置為非。時,該選項將被忽略default。

grep.threads

要使用的 grep 工作線程數(shù)。請參閱grep.threadsgit-grep [1] 以獲取更多信息。

grep.fallbackToNoIndex

如果設(shè)置為 true,則回退到 git grep --no-index,如果 git grep 在git 存儲庫之外執(zhí)行。默認(rèn)為 false。

gpg.program

在制作或驗證 PGP 簽名時使用此自定義程序而不是“ gpg$PATH。該程序必須支持與 GPG 相同的命令行界面,即驗證分離的簽名,“ gpg --verify $file - <$signature”已運行,并且該程序應(yīng)通過以代碼0退出來發(fā)出良好的簽名,并生成 ASCII 裝甲的分離簽名時,“ gpg -bsau $key” 的標(biāo)準(zhǔn)輸入將與要簽名的內(nèi)容一起提供,程序應(yīng)將結(jié)果發(fā)送至其標(biāo)準(zhǔn)輸出。

gui.commitMsgWidth

定義 git-gui [1] 中提交消息窗口的寬度?!?5”是默認(rèn)值。

gui.diffContext

指定在由 git-gui [1] 進行的 diff 調(diào)用中應(yīng)該使用多少上下文行。默認(rèn)值是“5”。

gui.displayUntracked

確定 git-gui [1] 是否在文件列表中顯示未跟蹤文件。默認(rèn)值是“true”。

gui.encoding

指定用于顯示 git-gui [1] 和 gitk [1] 中文件內(nèi)容的默認(rèn)編碼。可以通過設(shè)置encoding相關(guān)文件的屬性來覆蓋它(請參閱gitattributes [5])。如果未設(shè)置此選項,則工具默認(rèn)為區(qū)域設(shè)置編碼。

gui.matchTrackingBranch

確定使用 git-gui [1] 創(chuàng)建的新分支是否應(yīng)默認(rèn)跟蹤具有匹配名稱的遠程分支。默認(rèn)值:“false”。

gui.newBranchTemplate

在使用 git-gui 創(chuàng)建新分支時用作建議名稱[1]。

gui.pruneDuringFetch

如果git-gui [1]在執(zhí)行提取時應(yīng)修剪遠程跟蹤分支,則為“true”。默認(rèn)值是“false”。

gui.trustmtime

確定 git-gui [1] 是否應(yīng)該信任文件修改時間戳。默認(rèn)情況下,時間戳不受信任。

gui.spellingDictionary

指定在 git-gui [1] 中用于拼寫檢查提交消息的字典。當(dāng)設(shè)置為“無”時,拼寫檢查被關(guān)閉。

gui.fastCopyBlame

如果為 true,則git gui blame用于-C替代-C -C原始位置檢測。它會以巨大的副本檢測為代價,在巨大的存儲庫上大大加快責(zé)任。

gui.copyBlameThreshold

指定用于git gui blame原始位置檢測的閾值,以字母數(shù)字字符度量。有關(guān)復(fù)制檢測的更多信息,請參閱 git-blame [1]手冊。

gui.blamehistoryctx

指定從 gitk [1] 中顯示所選提交時歷史上下文的半徑(以天為單位),當(dāng)Show History Context從中調(diào)用菜單項時git gui blame。如果此變量設(shè)置為零,則顯示整個歷史記錄。

guitool.<name>.cmd

指定在Tools調(diào)用 git-gui [1] 菜單的相應(yīng)項時執(zhí)行的 shell 命令行。每個工具都必須使用此選項。該命令從工作目錄的根目錄開始執(zhí)行,并且在環(huán)境中它接收工具GIT_GUITOOL的名稱,當(dāng)前選擇的文件FILENAME的名稱為,當(dāng)前分支的名稱為CUR_BRANCH(如果頭已分離,CUR_BRANCH則為空)。

guitool.<name>.needsFile

只有在 GUI 中選擇差異時才運行該工具。它保證FILENAME不是空的。

guitool.<name>.noConsole

以靜默方式運行該命令,而不創(chuàng)建窗口來顯示其輸出。

guitool.<name>.noRescan

工具完成執(zhí)行后,不要重新掃描工作目錄以進行更改。

guitool.<name>.confirm

在實際運行該工具之前顯示一個確認(rèn)對話框。

guitool.<name>.argPrompt

從用戶請求一個字符串參數(shù),并通過ARGS環(huán)境變量將其傳遞給工具。由于請求參數(shù)意味著確認(rèn),confirm如果啟用該選項,則該選項不起作用。如果該選項設(shè)置為true,,yes1,則該對話框使用內(nèi)置的通用提示; 否則使用變量的確切值。

guitool.<name>.revPrompt

從用戶請求一個有效的修訂,并設(shè)置REVISION環(huán)境變量。在其他方面,這個選項類似于argPrompt,并且可以與它一起使用。

guitool.<name>.revUnmerged

僅顯示子revPrompt對話框中的未合并分支。這對類似于合并或重新綁定的工具很有用,但不適用于結(jié)帳或重置等工具。

guitool.<name>.title

指定用于提示對話框的標(biāo)題。默認(rèn)值是工具名稱。

guitool.<name>.prompt

argPrompt和之前的小節(jié)前面指定要顯示在對話框頂部的常規(guī)提示字符串revPrompt。默認(rèn)值包括實際的命令。

help.browser

指定將用于以web格式顯示幫助的瀏覽器。請參閱 git-help [1]。

help.format

覆蓋 git-help [1] 使用的默認(rèn)幫助格式。值man,info,webhtml支持。man是默認(rèn)值。web并且html是相同的。

help.autoCorrect

在等待給定的十分之一秒(0.1秒)后,自動糾正并執(zhí)行錯誤輸入的命令。如果可以從輸入的文本中推斷出多個命令,則不執(zhí)行任何操作。如果此選項的值為負(fù)數(shù),則會立即執(zhí)行更正的命令。如果該值為0  - 該命令將僅顯示但不執(zhí)行。這是默認(rèn)設(shè)置。

help.htmlPath

指定 HTML 文檔所在的路徑。支持文件系統(tǒng)路徑和 URL。當(dāng)幫助以web格式顯示時,HTML 頁面將以此路徑作為前綴。這默認(rèn)為Git安裝的文檔路徑。

http.proxy

重寫的 HTTP 代理,使用通常被配置http_proxy,https_proxyall_proxy環(huán)境變量(見curl(1))。除了 curl 理解的語法外,還可以指定一個帶有用戶名但沒有密碼的代理字符串,在這種情況下,git將嘗試以與其他憑據(jù)相同的方式獲取一個代理字符串。請參閱gitcredentials [7]了解更多信息。語法就是這樣[protocol://][user[:password]@]proxyhost[:port]。這可以在每個遠程的基礎(chǔ)上被覆蓋; 請參閱remote。<name> .proxy

http.proxyAuthMethod

設(shè)置對 HTTP 代理進行身份驗證的方法。這只有在配置的代理字符串包含用戶名部分(即具有表格user@hostuser@host:port)的情況下才會生效。這可以在每個遠程的基礎(chǔ)上被覆蓋; 見remote.<name>.proxyAuthMethod。兩者都可以被GIT_HTTP_PROXY_AUTHMETHOD環(huán)境變量覆蓋??赡艿闹凳牵?/p>

  • anyauth - 自動選擇合適的認(rèn)證方法。假設(shè)代理使用407狀態(tài)代碼和一個或多個具有支持的認(rèn)證方法的代理認(rèn)證頭來回答未經(jīng)身份驗證的請求。這是默認(rèn)設(shè)置。

  • basic  -  HTTP基本認(rèn)證

  • digest -  HTTP摘要認(rèn)證; 這可以防止密碼以明文形式傳輸?shù)酱矸?wù)器

  • negotiate-  GSS協(xié)商認(rèn)證(比較 - 協(xié)商選項curl(1)

  • ntlm-  NTLM身份驗證(比較--ntlm選項curl(1)

http.emptyAuth

嘗試認(rèn)證而不尋求用戶名或密碼。這可用于嘗試 GSS 協(xié)商身份驗證,而無需在 URL 中指定用戶名,因為 libcurl 通常需要用戶名進行身份驗證。

http.delegation

控制 GSSAPI 憑據(jù)委派。從版本7.21.7開始,代理在libcurl中默認(rèn)處于禁用狀態(tài)。設(shè)置參數(shù)以告訴服務(wù)器當(dāng)涉及到用戶憑證時允許委派什么。與GSS / Kerberos一起使用。可能的值是:

  • none  - 不允許任何代表團。

  • policy  - 當(dāng)且僅當(dāng)在Kerberos服務(wù)票據(jù)中設(shè)置了OK-AS-DELEGATE標(biāo)志時才委派,這是領(lǐng)域策略的問題。

  • always  - 無條件允許服務(wù)器委派。

http.extraHeader

與服務(wù)器通信時傳遞額外的 HTTP 標(biāo)頭。如果存在多個這樣的條目,則將它們?nèi)刻砑訛轭~外的標(biāo)題。要允許覆蓋從系統(tǒng)配置繼承的設(shè)置,一個空值會將額外的標(biāo)題重置為空列表。

http.cookieFile

包含先前存儲的 cookie 行的文件的路徑名,如果它們與服務(wù)器匹配,則應(yīng)該在Git http會話中使用該行。從中讀取 cookie 的文件的文件格式應(yīng)該是普通的HTTP頭文件或Netscape / Mozilla的 cookie 文件格式(請參閱參考資料curl(1))。請注意,除非設(shè)置了http.saveCookies,否則使用http.cookieFile指定的文件僅用作輸入。

http.saveCookies

如果設(shè)置,則將請求期間收到的 cookie 存儲到由 http.cookieFile 指定的文件中。如果 http.cookieFile 未設(shè)置,則不起作用。

http.sslVersion

協(xié)商 SSL 連接時要使用的 SSL 版本,如果要強制使用默認(rèn)值??捎煤湍J(rèn)版本取決于 libcurl 是針對 NSS 還是 OpenSSL 構(gòu)建的,以及正在使用的加密庫的特定配置。在內(nèi)部設(shè)置CURLOPT_SSL_VERSION選項; 請參閱 libcurl 文檔以獲取有關(guān)此選項格式和支持的ssl版本的更多詳細(xì)信息。其實這個選項的可能值是:

  • sslv2

  • sslv3

  • tlsv1

  • tlsv1.0

  • tlsv1.1

  • tlsv1.2

可以被GIT_SSL_VERSION環(huán)境變量覆蓋。要強制 git 使用 libcurl 的默認(rèn) ssl 版本并忽略任何明確的 http.sslversion選項,請設(shè)置GIT_SSL_VERSION為空字符串。

http.sslCipherList

協(xié)商 SSL 連接時使用的 SSL 密碼列表。可用的密碼取決于 libcurl 是否針對 NSS 或 OpenSSL 構(gòu)建,以及正在使用的加密庫的特定配置。在內(nèi)部設(shè)置CURLOPT_SSL_CIPHER_LIST選項; 請參閱libcurl文檔以獲取有關(guān)此列表格式的更多詳細(xì)信息。

可以被GIT_SSL_CIPHER_LIST環(huán)境變量覆蓋。要強制 git 使用 libcurl 的默認(rèn)密碼列表并忽略任何明確的http.sslCipherList選項,請設(shè)置GIT_SSL_CIPHER_LIST為空字符串。

http.sslVerify

在獲取或推送 HTTPS 時是否驗證 SSL 證書??梢员?code>GIT_SSL_NO_VERIFY環(huán)境變量覆蓋。

http.sslCert

提取或推送HTTPS時包含SSL證書的文件。可以被GIT_SSL_CERT環(huán)境變量覆蓋。

http.sslKey

在獲取或推送 HTTPS 時包含 SSL 私鑰的文件??梢员?code>GIT_SSL_KEY環(huán)境變量覆蓋。

http.sslCertPasswordProtected

啟用 Git 的密碼提示輸入 SSL 證書。否則 OpenSSL 會提示用戶,可能很多次,如果證書或私鑰是加密的??梢员?code>GIT_SSL_CERT_PASSWORD_PROTECTED環(huán)境變量覆蓋。

http.sslCAInfo

包含證書的文件,用于在獲取或推送 HTTPS 時驗證對等體??梢员?code>GIT_SSL_CAINFO環(huán)境變量覆蓋。

http.sslCAPath

包含帶有CA證書的文件的路徑,用于在獲取或推送HTTPS時驗證對等體??梢员?code>GIT_SSL_CAPATH環(huán)境變量覆蓋。

http.pinnedpubkey

https服務(wù)的公鑰。它可以是 PEM 或 DER 編碼的公鑰文件的文件名,或者是以公鑰sha256//的 base64 編碼的 sha256 哈希開頭的字符串。另請參閱 libcurl CURLOPT_PINNEDPUBLICKEY。如果設(shè)置了此選項但cURL不支持,git將退出并顯示錯誤。

http.sslTry

嘗試在通過常規(guī)FTP協(xié)議連接時使用AUTH SSL / TLS和加密數(shù)據(jù)傳輸。如果FTP服務(wù)器出于安全原因需要FTP服務(wù)器,或者希望在遠程FTP服務(wù)器支持時安全地連接,則可能需要這樣做。默認(rèn)值為false,因為它可能會在錯誤配置的服務(wù)器上觸發(fā)證書驗證錯誤。

http.maxRequests

并行啟動多少個HTTP請求??梢员?code>GIT_HTTP_MAX_REQUESTS環(huán)境變量覆蓋。缺省值是5。

http.minSessions

請求中保留的卷發(fā)會話數(shù)(跨槽計數(shù))。在調(diào)用http_cleanup()之前,它們不會以curl_easy_cleanup()結(jié)束。如果未定義USE_CURL_MULTI,則此值將被限制為1.默認(rèn)為1。

http.postBuffer

將數(shù)據(jù)發(fā)布到遠程系統(tǒng)時,智能HTTP傳輸所使用的緩沖區(qū)的最大大小(以字節(jié)為單位)。對于大于此緩沖區(qū)大小的請求,使用HTTP / 1.1和Transfer-Encoding:chunked來避免在本地創(chuàng)建大量的包文件。默認(rèn)值是1 MiB,這對大多數(shù)請求來說已經(jīng)足夠了。

http.lowSpeedLimit, http.lowSpeedTime

如果HTTP傳輸速度小于http.lowSpeedLimit用于長于http.lowSpeedTime秒,傳送被中止??梢酝ㄟ^覆蓋GIT_HTTP_LOW_SPEED_LIMITGIT_HTTP_LOW_SPEED_TIME環(huán)境變量。

http.noEPSV

通過curl禁止使用EPSV ftp命令的布爾值。這對于一些不支持EPSV模式的“差”ftp服務(wù)器可能會有所幫助??梢员?code>GIT_CURL_FTP_NO_EPSV環(huán)境變量覆蓋。默認(rèn)值為false(卷曲將使用EPSV)。

http.userAgent

提供給 HTTP 服務(wù)器的 HTTP USER_AGENT 字符串。默認(rèn)值表示客戶端 Git 的版本,例如 git / 1.7.1。此選項允許您將此值覆蓋為更常見的值,例如 Mozilla / 4.0。例如,如果通過限制HTTP連接的防火墻連接到一組通用的 USER_AGENT 字符串(但不包括像git / 1.7.1那樣的字符串),這可能是必要的??梢员?code>GIT_HTTP_USER_AGENT環(huán)境變量覆蓋。

http.followRedirects

git 是否應(yīng)該遵循 HTTP 重定向。如果設(shè)置為true,git將透明地遵循由它遇到的服務(wù)器發(fā)出的任何重定向。如果設(shè)置為false,git會將所有重定向視為錯誤。如果設(shè)置為initial,git只會將重定向追蹤到遠程的初始請求,而不是后續(xù)的后續(xù)HTTP請求。由于git使用重定向的URL作為后續(xù)請求的基礎(chǔ),這通常就足夠了。默認(rèn)是initial。

http.<url>.*

上面的任何 http。*選項都可以選擇性地應(yīng)用于某些 URL。要使配置鍵匹配 URL,需要按照以下順序?qū)⑴渲面I的每個元素與 URL 的元素進行比較:

  1. Scheme(例如,httpsin https://example.com/)。該字段必須與配置密鑰和URL完全匹配。

  2. 主機/域名(例如,example.comin https://example.com/)。該字段必須在配置密鑰和URL之間匹配??梢?code>*將主機名的一部分指定為匹配此級別的所有子域。https://*.example.com/例如會匹配https://foo.example.com/,但不會https://foo.bar.example.com/。

  3. 端口號(例如,8080in http://example.com:8080/)。該字段必須與配置密鑰和URL完全匹配。匹配前,省略的端口號會自動轉(zhuǎn)換為方案的正確默認(rèn)值。

  4. 路徑(例如,repo.gitin https://example.com/repo.git)。配置密鑰的路徑字段必須與URL的路徑字段完全匹配或作為以斜杠分隔的路徑元素的前綴。這意味著具有路徑foo/匹配URL路徑的配置密鑰foo/bar。前綴只能匹配斜線(/)邊界。較長的匹配優(yōu)先(因此,帶路徑的配置鍵與foo/barURL路徑的匹配性好于foo/bar僅帶路徑的配置鍵foo/)。

  5. 用戶名(例如,userin https://user@example.com/repo.git)。如果配置密鑰具有用戶名,則它必須完全匹配URL中的用戶名。如果配置密鑰沒有用戶名,則該配置密鑰將匹配具有任何用戶名(包括無)的URL,但優(yōu)先級低于具有用戶名的配置密鑰。

上面的列表按優(yōu)先順序排列; 與配置鍵路徑相匹配的URL優(yōu)于匹配其用戶名的 URL。例如,如果 URL 是https://user@example.com/foo/bar一個配置密鑰匹配項,https://example.com/foo將優(yōu)先于配置密鑰匹配項https://user@example.com。

在嘗試任何匹配之前,所有的 URL 都被標(biāo)準(zhǔn)化(如果嵌入在 URL 中,密碼部分總是被忽略以便匹配),以便簡單拼寫不同的等效 URL 可以正確匹配。環(huán)境變量設(shè)置總是覆蓋任何匹配。匹配的 URL 是直接指向Git 命令的 URL。這意味著由于重定向而訪問的任何 URL 都不參與匹配。

ssh.variant

取決于環(huán)境變量的值GIT_SSHGIT_SSH_COMMAND,或配置設(shè)置core.sshCommand,GIT 中自動檢測是否需要調(diào)整其命令行參數(shù)用于與PLINK 或使用的 TortoisePlink,而不是默認(rèn)值(的OpenSSH)。

配置變量ssh.variant可以設(shè)置為覆蓋此自動檢測; 有效值為sshplink,puttytortoiseplink。任何其他值將被視為正常的ssh。該設(shè)置可以通過環(huán)境變量覆蓋GIT_SSH_VARIANT。

i18n.commitEncoding

編碼提交消息的字符存儲在;  Git 本身并不在乎,但是這些信息是必要的,例如從電子郵件或 gitk 圖形歷史瀏覽器(可能在將來其他地方或其他porcelains中)導(dǎo)入提交時。參見例如 git-mailinfo [1]。默認(rèn)為utf-8。

i18n.logOutputEncoding

編碼提交消息的字符將轉(zhuǎn)換為運行時git log和朋友。

imap

imap節(jié)中的配置變量在 git-imap-send [1] 中進行了描述。

index.version

指定用于初始化新索引文件的版本。這不會影響現(xiàn)有的存儲庫。

init.templateDir

指定將從中復(fù)制模板的目錄。(請參閱 git-init [1] 的“TEMPLATE DIRECTORY”部分。)

instaweb.browser

指定將用于在 gitweb 中瀏覽工作存儲庫的程序。參見 git-instaweb [1]。

instaweb.httpd

HTTP daemon 命令行在您的工作存儲庫上啟動 gitweb。參見 git-instaweb [1]。

instaweb.local

如果為 true,則由 git-instaweb [1] 啟動的 Web 服務(wù)器將綁定到本地IP(127.0.0.1)。

instaweb.modulePath

使用 git-instaweb [1] 而不是/ usr / lib / apache2 / modules的默認(rèn)模塊路徑。僅在 httpd 是 Apache 時使用。

instaweb.port

將 gitweb httpd 綁定到的端口號。參見 git-instaweb [1]。

interactive.singleKey

在交互式命令中,允許用戶使用單個鍵提供單字母輸入(即不輸入)。目前,這被--patchgit-add [1],git-checkout [1],git-commit [1],git-reset [1 ]和 git-stash [1]使用。請注意,如果便攜式按鍵輸入不可用,則此設(shè)置將被忽略; 需要Perl模塊Term :: ReadKey。

interactive.diffFilter

當(dāng)一個交互式命令(比如git add --patch)顯示一個彩色差異時,git 會通過由該配置變量定義的shell命令來傳遞 diff。該命令可以進一步標(biāo)記用于人類消費的差異,前提是它保留與原始差異中的行的一一對應(yīng)關(guān)系。默認(rèn)為禁用(不過濾)。

log.abbrevCommit

如果為 true,則使 git-log [1],git-show [1] 和 git-whatchanged [1]假定--abbrev-commit。您可以使用覆蓋此選項--no-abbrev-commit。

log.date

設(shè)置命令的默認(rèn)日期時間模式log。為 log.date 設(shè)置一個值與使用git log's --date選項類似。有關(guān)詳細(xì)信息,請參閱 git-log [1]。

log.decorate

打印 log 命令顯示的任何提交的 ref 名稱。如果short被指定,裁判名稱前綴refs/heads/refs/tags/并且refs/remotes/將不被打印。如果full指定,將打印完整的參考名稱(包括前綴)。如果auto被指定,那么如果輸出到達終端,則 ref 名稱顯示為如果short給定,否則不顯示 ref 名稱。這與--decorate選項相同git log。

log.follow

如果true,git log將作為如果--follow當(dāng)單個<path>在給定的使用選項。這與它具有相同的限制--follow,即它不能用于跟蹤多個文件,并且在非線性歷史記錄上不能很好地工作。

log.graphColors

以逗號分隔的顏色列表,可用于繪制歷史線條git log --graph。

log.showRoot

如果為 true,則初始提交將顯示為一個大創(chuàng)建事件。這相當(dāng)于針對空樹的差異。諸如 git-log [1] 或 git-whatchanged [1] 之類的工具通常會隱藏根提交,現(xiàn)在將顯示它。默認(rèn)情況下為真。

log.showSignature

如果為 true,則使 git-log [1],git-show [1] 和 git-whatchanged [1]假定--show-signature

log.mailmap

如果為 true,則使 git-log [1],git-show [1] 和 git-whatchanged [1]假定--use-mailmap

mailinfo.scissors

如果為 true,默認(rèn)情況下會使 git-mailinfo [1](因此git-am [1])起作用,就像在命令行上提供了--scissors選項一樣。激活時,此功能可在剪刀線(即主要由“> 8”,“8”和“ - ”)組成的剪刀線之前移除消息體中的所有內(nèi)容。

mailmap.file

擴充郵件地圖文件的位置。位于存儲庫根目錄中的默認(rèn)郵件地圖首先被加載,然后被加載,然后被該變量指向的郵件地圖文件。郵件地圖文件的位置可能位于存儲庫子目錄中,或者位于存儲庫本身之外的某個位置。參見 git-shortlog [1]和git-blame [1]。

mailmap.blob

就像mailmap.file,但是將該值視為對存儲庫中 blob 的引用。如果兩個mailmap.filemailmap.blob給出,兩者都分析,從項目mailmap.file采取優(yōu)先次序。在裸倉庫中,默認(rèn)為HEAD:.mailmap。在非裸倉庫中,它默認(rèn)為空。

man.viewer

指定可用于以man格式顯示幫助的程序。請參閱 git-help [1]。

man.<tool>.cmd

指定命令來調(diào)用指定的 man 查看器。指定的命令在shell中使用作為參數(shù)傳遞的手冊頁進行評估。(請參閱git-help [1]。)

man.<tool>.path

覆蓋可能用于以man格式顯示幫助的給定工具的路徑。請參閱 git-help [1]。

merge.conflictStyle

指定在合并時將沖突的區(qū)塊寫入工作樹文件的樣式。默認(rèn)值是“合并”,它顯示了一個<<<<<<<沖突標(biāo)記,一側(cè)=======發(fā)生的變化,一個標(biāo)記,另一側(cè)發(fā)生的變化,然后是>>>>>>>標(biāo)記。另一種樣式“diff3”在|||||||標(biāo)記之前添加了一個標(biāo)記和原始文本=======。

merge.defaultToUpstream

如果在沒有任何提交參數(shù)的情況下調(diào)用合并,則使用存儲在其遠程跟蹤分支中的上次觀察值合并為當(dāng)前分支配置的上游分支。查詢branch.<current branch>.merge名稱為遠程命名的遠程分支的值branch.<current branch>.remote,然后將它們映射remote.<remote>.fetch到其對應(yīng)的遠程跟蹤分支,并合并這些跟蹤分支的提示。

merge.ff

默認(rèn)情況下,Git 在合并作為當(dāng)前提交的后代的提交時不會創(chuàng)建額外的合并提交。相反,當(dāng)前分支的尖端被快速轉(zhuǎn)發(fā)。當(dāng)設(shè)置為false,這個變量告訴Git在這種情況下創(chuàng)建一個額外的合并提交(相當(dāng)于--no-ff從命令行提供選項)。設(shè)置only為時,只允許進行這種快進合并(相當(dāng)于--ff-only從命令行提供選項)。

merge.branchdesc

除了分支名稱之外,還可以使用與它們關(guān)聯(lián)的分支描述文本填充日志消息。默認(rèn)為 false。

merge.log

除了分支名稱之外,還可以在日志消息中最多填寫指定數(shù)量的來自要合并的實際提交的單行描述。默認(rèn)為 false,true 為20的同義詞。

merge.renameLimit

在合并期間執(zhí)行重命名檢測時要考慮的文件數(shù)量; 如果未指定,則默認(rèn)為 diff.renameLimit 的值。

merge.renormalize

告訴 Git 存儲庫中文件的規(guī)范表示已經(jīng)隨時間而改變(例如,較早的提交記錄具有 CRLF 行尾的文本文件,但最近使用LF行結(jié)尾)。在這樣的存儲庫中,Git 可以在提交之前將提交中記錄的數(shù)據(jù)轉(zhuǎn)換為規(guī)范形式,然后再執(zhí)行合并以減少不必要的沖突。有關(guān)更多信息,請參閱gitattributes [5]中的“合并具有不同簽入/簽出屬性的分支”部分。

merge.stat

是否在合并結(jié)束時在 ORIG_HEAD 和合并結(jié)果之間打印 diffstat。默認(rèn)情況下為真。

merge.tool

控制哪個合并工具由 git-mergetool [1] 使用。下面的列表顯示了有效的內(nèi)置值。任何其他值都被視為自定義合并工具,并要求定義相應(yīng)的mergetool。<tool> .cmd變量。

  • araxis

  • bc

  • bc3

  • codecompare

  • deltawalker

  • diffmerge

  • diffuse

  • ecmerge

  • emerge

  • examdiff

  • gvimdiff

  • gvimdiff2

  • gvimdiff3

  • kdiff3

  • meld

  • opendiff

  • p4merge

  • tkdiff

  • tortoisemerge

  • vimdiff

  • vimdiff2

  • vimdiff3

  • winmerge

  • xxdiff

merge.verbosity

控制遞歸合并策略顯示的輸出量。如果檢測到?jīng)_突,級別0只輸出最終的錯誤消息。1級只輸出沖突,2個輸出沖突和文件更改。5級及以上輸出調(diào)試信息。缺省值是2級??梢杂?code>GIT_MERGE_VERBOSITY環(huán)境變量覆蓋。

merge.<driver>.name

為自定義低級合并驅(qū)動程序定義一個人類可讀的名稱。有關(guān)詳細(xì)信息,請參閱 gitattributes [5]。

merge.<driver>.driver

定義實現(xiàn)自定義低級別合并驅(qū)動程序的命令。有關(guān)詳細(xì)信息,請參閱gitattributes [5]。

merge.<driver>.recursive

在執(zhí)行公共祖先之間的內(nèi)部合并時,命名一個低級合并驅(qū)動程序。有關(guān)詳細(xì)信息,請參閱 gitattributes [5]。

mergetool.<tool>.path

覆蓋給定工具的路徑。如果您的工具不在 PATH 中,這非常有用。

mergetool.<tool>.cmd

指定命令來調(diào)用指定的合并工具。在 shell 中使用以下可用變量評估指定的命令:BASE是包含要合并的文件的公共基礎(chǔ)的臨時文件的名稱(如果可用); LOCAL是包含當(dāng)前分支上文件內(nèi)容的臨時文件的名稱; REMOTE是包含來自合并分支的文件內(nèi)容的臨時文件的名稱; MERGED包含合并工具應(yīng)將寫入成功合并結(jié)果的文件的名稱。

mergetool.<tool>.trustExitCode

對于自定義合并命令,指定是否可以使用合并命令的退出代碼來確定合并是否成功。如果未設(shè)置為 true,則檢查合并目標(biāo)文件時間戳,如果文件已更新,則假定合并已成功,否則將提示用戶指示合并成功。

mergetool.meld.hasOutput

舊版本meld不支持該--output選項。Git 會嘗試通過檢查輸出來檢測是否meld支持。配置將使 Git 跳過這些檢查并改為使用配置的值。設(shè)置要告訴 Git 的無條件使用選項,使用避免。--outputmeld --helpmergetool.meld.hasOutputmergetool.meld.hasOutputtrue--outputfalse--output

mergetool.keepBackup

在執(zhí)行合并之后,具有沖突標(biāo)記的原始文件可以保存為具有.orig擴展名的文件。如果這個變量被設(shè)置為false那么這個文件不會被保留。默認(rèn)為true(即保留備份文件)。

mergetool.keepTemporaries

在調(diào)用自定義合并工具時,Git 使用一組臨時文件傳遞給該工具。如果該工具返回一個錯誤并將該變量設(shè)置為true,則這些臨時文件將被保留,否則它們將在該工具退出后被刪除。默認(rèn)為false。

mergetool.writeToTemp

Git 的寫入臨時BASELOCAL以及REMOTE默認(rèn)的文件沖突的版本在worktree。設(shè)置時,Git 會嘗試使用這些文件的臨時目錄true。默認(rèn)為false。

mergetool.prompt

在每次調(diào)用合并解決程序之前提示。

notes.mergeStrategy

解決筆記沖突時默認(rèn)選擇哪種合并策略。必須是一manual,ours,theirs,union,或cat_sort_uniq。默認(rèn)為manual。有關(guān)每種策略的更多信息,請參閱 git-notes [1]的“注釋合并策略”部分。

notes.<name>.mergeStrategy

在將注釋合并到 refs / notes / <name> 時選擇哪種合并策略。這覆蓋了更一般的“notes.mergeStrategy”。有關(guān)可用策略的更多信息,請參閱 git-notes [1] 中的“NOTES MERGE策略”部分。

notes.displayRef

顯示提交消息時顯示備注的(完全限定)refname。這個變量的值可以設(shè)置為一個 glob,在這種情況下,所有匹配的ref都會顯示出來。您也可以多次指定此配置變量。對于不存在的 ref,將發(fā)出警告,但不匹配任何 ref 的 glob 默默無視。

該設(shè)置可以用GIT_NOTES_DISPLAY_REF環(huán)境變量覆蓋,該變量必須是以冒號分隔的參考或球體列表。

“core.notesRef”的有效值(可能被 GIT_NOTES_REF 覆蓋)也隱式添加到要顯示的 ref 列表中。

notes.rewrite.<command>

當(dāng)用<command>(當(dāng)前amend或者rebase)重寫提交并且該變量被設(shè)置true為時,Git會自動將筆記從原始文件復(fù)制到重寫的提交中。默認(rèn)為true,但請參閱下面的“notes.rewriteRef”。

notes.rewriteMode

在重寫過程中復(fù)制筆記時(請參閱“notes.rewrite。<command>”選項),確定如果目標(biāo)提交已經(jīng)有筆記要執(zhí)行的操作。必須是一個overwrite,concatenate,cat_sort_uniq,或ignore。默認(rèn)為concatenate

該設(shè)置可以用GIT_NOTES_REWRITE_MODE環(huán)境變量覆蓋。

notes.rewriteRef

在重寫過程中復(fù)制備注時,指定應(yīng)該復(fù)制其備注的(完全限定)參考。ref 可以是一個 glob,在這種情況下,所有匹配參考中的備注都將被復(fù)制。您也可以多次指定此配置。

沒有默認(rèn)值; 您必須配置此變量以啟用音符重寫。將其設(shè)置refs/notes/commits為啟用默認(rèn)提交備注的重寫。

該設(shè)置可以用GIT_NOTES_REWRITE_REF環(huán)境變量覆蓋,該變量必須是以冒號分隔的參考或球體列表。

pack.window

當(dāng)命令行沒有給出窗口大小時,git-pack-objects [1]使用的窗口大小。默認(rèn)為10。

pack.depth

當(dāng)命令行沒有給出最大深度時,git-pack-objects [1] 使用的最大增量深度。默認(rèn)為50。

pack.windowMemory

在命令行中未給出限制時,包裝窗口內(nèi)存的 git-pack-objects [1] 中的每個線程占用的最大內(nèi)存大小。該值可以后綴“k”,“m”或“g”。當(dāng)未配置(或明確設(shè)置為0)時,不會有任何限制。

pack.compression

一個整數(shù)-1..9,表示包文件中對象的壓縮級別。-1是zlib的默認(rèn)值。0代表沒有壓縮,1..9代表不同的速度/尺寸折衷,9代表最慢。如果未設(shè)置,則默認(rèn)為 core.compression。如果沒有設(shè)置,默認(rèn)為-1,默認(rèn)為zlib,這是“速度和壓縮之間的默認(rèn)折衷(當(dāng)前等同于級別6)”。

請注意,更改壓縮級別不會自動重新壓縮所有現(xiàn)有對象。您可以通過將-F選項傳遞給 git-repack [1] 來強制再壓縮。

pack.deltaCacheSize

用于緩存 git-pack-objects [1] 中的增量的最大內(nèi)存(以字節(jié)為單位),然后將它們寫出到一個包中。該緩存用于加速寫入對象階段,因為一旦找到所有對象的最佳匹配,就不必重新計算最終的增量結(jié)果。在內(nèi)存緊張的機器上重新包裝大型軟件倉庫可能會受到嚴(yán)重影響,特別是如果此緩存將系統(tǒng)推入交換。值為0意味著沒有限制。1字節(jié)的最小尺寸可以用于虛擬地禁用該緩存。默認(rèn)為256 MiB。

pack.deltaCacheLimit

增量的最大大小,即緩存在 git-pack-objects [1] 中。該緩存用于加速寫入對象階段,因為一旦找到所有對象的最佳匹配,就不必重新計算最終的增量結(jié)果。默認(rèn)為1000。

pack.threads

指定搜索最佳增量匹配時產(chǎn)生的線程數(shù)。這要求用 pthread 編譯 git-pack-objects [1],否則這個選項會被忽略并帶有警告。這是為了減少多處理器機器的打包時間。然而,增量搜索窗口所需的內(nèi)存量乘以線程數(shù)量。指定0將導(dǎo)致Git自動檢測CPU的數(shù)量并相應(yīng)地設(shè)置線程數(shù)量。

pack.indexVersion

指定默認(rèn)包裝索引版本。對于1.5.2之前的 Git 版本使用的舊版包裝索引,有效值為1,對于包裝容量大于4 GB的新包裝索引,有效值為2,并且對重新包裝損壞的包裝提供適當(dāng)?shù)谋Wo。版本2是默認(rèn)值。請注意,強制執(zhí)行版本2,并且只要相應(yīng)的包大于2 GB,就會忽略此配置選項。

如果您有一個舊的 Git 不理解版本2 *.idx文件,通過非本地協(xié)議(例如“http”)克隆或獲取將從另一端復(fù)制*.pack文件和相應(yīng)*.idx文件的可能會給您一個無法訪問的存儲庫與你的老版本的Git。*.pack但是,如果文件小于2 GB,則可以使用* .pack文件上的git-index-pack [1]來重新生成該*.idx文件。

pack.packSizeLimit

包的最大尺寸。此設(shè)置僅影響重新包裝到文件,即 git://協(xié)議不受影響。它可以被--max-pack-sizegit-repack [1]選項覆蓋。達到此限制會導(dǎo)致創(chuàng)建多個包裝文件; 這反過來又防止了位圖的創(chuàng)建。允許的最小尺寸限制為1 MiB。默認(rèn)值是無限的。常見的單元后綴k,mg支持。

pack.useBitmaps

如果為 true,則 git 在打包到標(biāo)準(zhǔn)輸出時(例如,在獲取的服務(wù)器端期間)將使用包位圖(如果可用)。默認(rèn)為true。除非您正在調(diào)試包位圖,否則通常不需要關(guān)閉此功能。

pack.writeBitmaps (deprecated)

這是一個不贊成的同義詞repack.writeBitmaps。

pack.writeBitmapHashCache

如果為true,git 將在位圖索引中包含一個“散列緩存”部分(如果寫入的話)。這個緩存可以用來提供 git 的 delta 啟發(fā)式,可能會導(dǎo)致位圖對象和非位圖對象之間更好的增量(例如,在較舊的位圖包和自上次gc以來推送的對象之間提供提取時)。缺點是每個對象的磁盤空間消耗4個字節(jié),JGi t的位圖實現(xiàn)不理解它,如果在同一個存儲庫上使用 Git和JGit,會導(dǎo)致它投訴。默認(rèn)為false。

pager.<cmd>

如果值是布爾值,則在寫入 tty 時打開或關(guān)閉特定 Git 子命令輸出的分頁。否則,使用由值的指定的尋呼機打開子命令的分頁pager.<cmd>。如果--paginate--no-pager在命令行上指定,則優(yōu)先于此選項。要為所有命令,設(shè)置禁用分頁core.pagerGIT_PAGERcat

pretty.<name>

--git-log [1]中指定的 --pretty = format 字符串的別名。這里定義的任何別名都可以像內(nèi)置的漂亮格式一樣使用。例如,運行git config pretty.changelog "format:* %H %s"會導(dǎo)致調(diào)用git log --pretty=changelog等同于運行git log "--pretty=format:* %H %s"。請注意,與內(nèi)置格式同名的別名將被忽略。

protocol.allow

如果設(shè)置,為所有沒有明確規(guī)定策略的協(xié)議提供用戶定義的默認(rèn)策略(protocol.<name>.allow)。默認(rèn)情況下,如果未設(shè)置,已知安全協(xié)議(http,https,git,ssh,文件)具有默認(rèn)策略always,則已知危險協(xié)議(ext)具有默認(rèn)策略never,并且所有其他協(xié)議具有默認(rèn)策略user。支持的策略:

  • always  - 協(xié)議總是可以使用的。

  • never  - 協(xié)議永遠不能使用。

  • user- 只有在GIT_PROTOCOL_FROM_USER未設(shè)置或值為1時才能使用協(xié)議。當(dāng)您希望協(xié)議可以被用戶直接使用但不希望被執(zhí)行克隆/獲取的命令使用時,應(yīng)使用此策略/推命令沒有用戶輸入,例如遞歸子模塊初始化。

protocol.<name>.allow

使用<name>clone / fetch / push 命令設(shè)置要由協(xié)議使用的策略。請參閱protocol.allow上面的可用政策。

git 目前使用的協(xié)議名稱為:

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

  • git:通過直接TCP連接(或代理,如果已配置)的匿名git協(xié)議

  • ssh:git over ssh(包括host:path語法ssh://,等)。

  • http:通過http的git,“智能http”和“啞巴http”。請注意,這not包括https; 如果你想配置兩者,你必須單獨做。

  • 任何外部助手都按其協(xié)議命名(例如,用于hg允許git-remote-hg助手)

pull.ff

默認(rèn)情況下,Git在合并作為當(dāng)前提交的后代的提交時不會創(chuàng)建額外的合并提交。相反,當(dāng)前分支的尖端被快速轉(zhuǎn)發(fā)。當(dāng)設(shè)置為false,這個變量告訴Git在這種情況下創(chuàng)建一個額外的合并提交(相當(dāng)于--no-ff從命令行提供選項)。設(shè)置only為時,只允許進行這種快進合并(相當(dāng)于--ff-only從命令行提供選項)。此設(shè)置merge.ff在拔取時覆蓋。

pull.rebase

如果為true,則rebase分支位于提取分支的頂部,而不是在運行“git pull”時合并默認(rèn)分支和默認(rèn)分支。請參閱“分支。<名稱> .rebase”以每個分支為基礎(chǔ)進行設(shè)置。

當(dāng)保存時,也會傳遞--preserve-merges到,git rebase以便本地提交的合并提交不會因運行而變得平坦git pull

當(dāng)值為時interactive,rebase 以交互模式運行。

注意:這是一個可能危險的操作; ,不要用它除非你理解的含義才能使用(請查看git-變基[1]了解詳細(xì)信息)。

pull.octopus

一次拉多個分支時使用的默認(rèn)合并策略。

pull.twohead

拉動單個分支時使用的默認(rèn)合并策略。

push.default

定義git push如果沒有明確給出 refspec 就應(yīng)該采取的行動。不同的值非常適合特定的工作流程; 例如,在一個純粹的中央工作流程(即提取源等于推送目的地),upstream可能是你想要的??赡艿闹凳牵?/p>

  • nothing - 除非明確給出refspec,否則不要推送任何東西(錯誤輸出)。這主要是針對那些想要通過始終明確避免錯誤的人。

  • current - 推送當(dāng)前分支以更新接收端具有相同名稱的分支。適用于中央和非中央工作流程。

  • upstream- 將當(dāng)前分支推回到其更改通常集成到當(dāng)前分支(稱為@{upstream})的分支中。這種模式只有在您推送到您通常需要的同一個存儲庫(例如中央工作流程)時才有意義。

  • tracking- 這是一個不贊成的同義詞upstream。

  • simple- 在集中式工作流程中,upstream如果上游分支的名稱與本地名稱不同,則可以像增加安全性一樣拒絕推送。當(dāng)推送到與通常從中拉出的遠程不同的遠程時,按照current。這是最安全的選擇,適合初學(xué)者。該模式已成為Git 2.0中的默認(rèn)模式。

  • matching - 推送兩端同名的所有分支。這使得你正在推動記住設(shè)置將要推出的分支(例如,如果你總是推存儲庫maintmaster有其他分支機構(gòu),你推到會有這兩個分支的庫,和當(dāng)?shù)氐?code>maint和master將在那里推)。要有效地使用這種模式,你必須確保all你推出的分支在運行之前已經(jīng)準(zhǔn)備好被推出git push,因為這種模式的重點在于讓您一次推送所有分支。如果您通常只完成一個分支的工作并推出結(jié)果,而其他分支未完成,則此模式不適合您。此外,此模式不適合推入共享的中央存儲庫,因為其他人可能會在該處添加新的分支,或者更新您的控制之外的現(xiàn)有分支的提示。這曾經(jīng)是默認(rèn)的,但從Git 2.0開始(這simple是新的默認(rèn)設(shè)置)。

push.followTags

如果--follow-tags默認(rèn)設(shè)置為 true 啟用選項。您可以在推送時通過指定覆蓋此配置--no-follow-tags。

push.gpgSign

可能被設(shè)置為布爾值或字符串if-asked。一個真正的值會導(dǎo)致所有推送被GPG簽名,就好像--signed被傳遞給 git-push [1]一樣。if-asked如果服務(wù)器支持該字符串,該字符串將導(dǎo)致推送被簽名,就像--signed=if-asked傳遞給它一樣git push。假值可能會覆蓋來自低優(yōu)先級配置文件的值。一個明確的命令行標(biāo)志總是會覆蓋這個配置選項。

push.recurseSubmodules

確保遠程跟蹤分支上提供了要推送的修訂版所使用的所有子模塊提交。如果該值是checkGit,那么 Git 將驗證所有要修改的子模塊提交在子模塊的至少一個遠程模塊上可用。如果任何提交丟失,推送將被中止并以非零狀態(tài)退出。如果該值是,on-demand那么將推送修訂中要更改的所有子模塊。如果按需無法推送所有必需的修訂,它也會被中止并以非零狀態(tài)退出。如果該值no是保留推送時忽略子模塊的默認(rèn)行為。您可以在推送時通過指定覆蓋此配置--recurse-submodules=check|on-demand|no。

rebase.stat

是否顯示自上次變基期以來上游變化的差異。默認(rèn)為 False。

rebase.autoSquash

如果--autosquash默認(rèn)設(shè)置為 true 啟用選項。

rebase.autoStash

設(shè)置為 true 時,在操作開始之前自動創(chuàng)建臨時存儲條目,并在操作結(jié)束后應(yīng)用它。這意味著你可以在骯臟的工作樹上運行 rebase。但是,謹(jǐn)慎使用:成功重新綁定后的最終隱藏應(yīng)用程序可能會導(dǎo)致不平凡的沖突。默認(rèn)為 false。

rebase.missingCommitsCheck

如果設(shè)置為“警告”,git rebase -i 將在一些提交被刪除時(例如,一行被刪除)打印警告,但是 rebase 仍然會繼續(xù)。如果設(shè)置為“錯誤”,它將打印先前的警告并停止重設(shè),git rebase --edit-todo然后可用于糾正錯誤。如果設(shè)置為“忽略”,則不進行檢查。要刪除沒有警告或錯誤的提交,請使用drop待辦事項列表中的命令。默認(rèn)為“忽略”。

rebase.instructionFormat

格式字符串,如 git-log [1] 中所指定的,用于交互式重新綁定期間的指令列表。該格式將自動具有格式前面的長提交哈希。

receive.advertiseAtomic

默認(rèn)情況下,git-receive-pack 會向其客戶端通告原子推送功能。如果您不想公布此功能,請將此變量設(shè)置為 false。

receive.advertisePushOptions

當(dāng)設(shè)置為 true 時,git-receive-pack 會將推送選項功能通告給它的客戶端。默認(rèn)為 False。

receive.autogc

默認(rèn)情況下,從 git-push 接收數(shù)據(jù)并更新引用后,git-receive-pack將運行“git-gc --auto”。您可以通過將此變量設(shè)置為 false 來停止它。

receive.certNonceSeed

通過將此變量設(shè)置為字符串,git receive-pack將接受git push --signed并通過使用由 HMAC 保護的“nonce”使用此字符串作為密鑰來驗證它。

receive.certNonceSlop

當(dāng)git push --signed發(fā)送一個推送證書時,這個推送證書由在此數(shù)秒鐘內(nèi)為同一個存儲庫提供服務(wù)的接收包發(fā)布的“隨機數(shù)”,將證書中發(fā)現(xiàn)的“隨機數(shù)”導(dǎo)出GIT_PUSH_CERT_NONCE到掛鉤(而不是接收包問包括發(fā)送方)。這可能允許寫入檢查pre-receive并且post-receive更容易一些。而不是檢查GIT_PUSH_CERT_NONCE_SLOP環(huán)境變量的記錄是由多少秒nonce是陳舊的,以決定他們是否要接受證書,他們只能檢查GIT_PUSH_CERT_NONCE_STATUSOK

receive.fsckObjects

如果它設(shè)置為 true,git-receive-pack 將檢查所有收到的對象。如果格式錯誤的對象或鏈接斷開,它將中止。中止的結(jié)果只是懸掛的對象。默認(rèn)為 false。如果未設(shè)置,transfer.fsckObjects則使用其值。

receive.fsck.<msg-id>

當(dāng)receive.fsckObjects被設(shè)置為 true 時,誤差可以通過配置切換到警告,反之亦然receive.fsck.<msg-id>設(shè)置其中<msg-id>是 fsck 的消息ID和值為之一error,warnignore。為了方便起見,fsck在錯誤/警告前添加了消息ID,例如“missingEmail:invalid author / committer line  -  missing email”意味著該設(shè)置receive.fsck.missingEmail = ignore將隱藏該問題。

此功能旨在支持使用傳統(tǒng)存儲庫時不會推送時間receive.fsckObjects = true,允許主機接受存在某些已知問題但仍捕獲其他問題的存儲庫。

receive.fsck.skipList

已知以非致命方式破壞的對象名稱的排序列表(即每行一個SHA-1)的路徑應(yīng)被忽略。如果盡早提交包含可安全忽略的錯誤(如無效的提交者電子郵件地址)的應(yīng)用程序,則應(yīng)接受已建立的項目,此功能非常有用。注意:使用此設(shè)置不能跳過損壞的對象。

receive.keepAlive

從客戶端收到包后,在處理包時receive-pack可能沒有輸出(如果--quiet指定),導(dǎo)致某些網(wǎng)絡(luò)斷開 TCP 連接。通過設(shè)置此選項,如果receive-pack在此階段中不傳輸任何數(shù)據(jù)達receive.keepAlive數(shù)秒鐘,它將發(fā)送一個短保持?jǐn)?shù)據(jù)包。默認(rèn)值是5秒; 設(shè)置為0將完全禁用Keepalive。

receive.unpackLimit

如果在推送中收到的對象數(shù)量低于此限制,則對象將被解壓縮為松散的對象文件。但是,如果接收到的對象數(shù)量等于或超過此限制,則在添加任何缺少的增量基數(shù)后,接收的數(shù)據(jù)包將作為一個包存儲。從推存儲包可以使推送操作更快完成,特別是在慢速文件系統(tǒng)上。如果未設(shè)置,transfer.unpackLimit則使用其值。

receive.maxInputSize

如果傳入包的大小大于此限制,那么 git-receive-pack 將會出錯,而不是接受包文件。如果沒有設(shè)置或設(shè)置為0,那么大小是無限的。

receive.denyDeletes

如果設(shè)置為 true,git-receive-pack 將拒絕刪除 ref 的 ref更新。使用它來防止通過推送刪除這樣的引用。

receive.denyDeleteCurrent

如果設(shè)置為 true,那么 git-receive-pack 將拒絕一個 ref更新,它會刪除非裸倉庫的當(dāng)前檢出分支。

receive.denyCurrentBranch

如果設(shè)置為 true 或“拒絕”,git-receive-pack將拒絕對非裸倉庫的當(dāng)前簽出分支的 ref更新。這樣的推送是潛在的危險,因為它會使HEAD 與索引和工作樹不同步。如果設(shè)置為“警告”,則將這種推送警告打印到標(biāo)語,但允許推送繼續(xù)。如果設(shè)置為 false 或“忽略”,則允許在沒有消息的情況下推送。默認(rèn)為“拒絕”。

另一種選擇是“updateInstead”,如果推入當(dāng)前分支,它將更新工作樹。此選項用于同步工作目錄,當(dāng)通過交互式 ssh 無法輕松訪問一個工作目錄時(例如實時網(wǎng)站,因此要求工作目錄清潔)。在虛擬機內(nèi)部進行開發(fā)以在不同的操作系統(tǒng)上測試和修復(fù)代碼時,此模式也會派上用場。

默認(rèn)情況下,如果工作樹或索引與 HEAD 有任何不同,“updateInstead”將拒絕推送,但push-to-checkout可以使用掛鉤來自定義此操作。見githooks [5]。

receive.denyNonFastForwards

如果設(shè)置為 true,那么 git-receive-pack 會拒絕不是快進的 ref 更新。即使強制推送,也可以通過推送來阻止這種更新。該配置變量在初始化共享存儲庫時設(shè)置。

receive.hideRefs

這個變量是相同的transfer.hideRefs,但只適用于receive-pack(并且因此影響推送,但不提?。L試更新或刪除隱藏參考git push被拒絕。

receive.updateServerInfo

如果設(shè)置為 true,git-receive-pack 在從 git-push 接收數(shù)據(jù)并更新 refs 后將運行 git-update-server-info。

receive.shallowUpdate

如果設(shè)置為 true,則當(dāng)新引用需要新的淺根時,可以更新.git / shallow。否則,這些裁判將被拒絕。

remote.pushDefault

遙控器默認(rèn)為推送。覆蓋branch.<name>.remote所有分支,并由branch.<name>.pushRemote特定分支覆蓋。

remote.<name>.url

遠程存儲庫的 URL。請參閱git-fetch [1]或git-push [1]。

remote.<name>.pushurl

遠程存儲庫的推送網(wǎng)址。見 git-push [1]。

remote.<name>.proxy

對于需要 curl(http,https和ftp)的遙控器,用于該遙控器的代理的URL。設(shè)置為空字符串以禁用該遠程代理。

remote.<name>.proxyAuthMethod

對于需要 curl(http,https和ftp)的遙控器,用于對正在使用的代理(可能設(shè)置remote.<name>.proxy)進行認(rèn)證的方法???code>http.proxyAuthMethod。

remote.<name>.fetch

git-fetch [1]的默認(rèn)設(shè)置“refspec”。參見git-fetch [1]。

remote.<name>.push

git-push [1]的默認(rèn)設(shè)置“refspec”。見git-push [1]。

remote.<name>.mirror

如果為 true,則推送到此遠程將自動運行,就像--mirror在命令行上給出選項一樣。

remote.<name>.skipDefaultUpdate

如果為 true,那么當(dāng)使用 git-fetch [1] 或updategit-remote [1] 的子命令進行更新時,該遠程將默認(rèn)跳過。

remote.<name>.skipFetchAll

如果為 true,那么當(dāng)使用 git-fetch [1] 或updategit-remote [1] 的子命令進行更新時,該遠程將默認(rèn)跳過。

remote.<name>.receivepack

推送時在遠端執(zhí)行的默認(rèn)程序。請參閱選項 - 接收 git-push [1] 的包。

remote.<name>.uploadpack

獲取時在遠程端執(zhí)行的默認(rèn)程序。查看選項 --upload-pack的 git-fetch-pack [1]。

remote.<name>.tagOpt

如果將此值設(shè)置為 --no-tags,則從遠程<名稱>獲取時將禁用自動標(biāo)記跟蹤。將它設(shè)置為 --tags 將從遠程<name>中獲取每個標(biāo)記,即使它們不能從遠程分支頭到達。將這些標(biāo)志直接傳遞給 git-fetch [1] 可以覆蓋此設(shè)置。查看選項--tags 和 --no-tags的git-fetch [1]。

remote.<name>.vcs

將其設(shè)置為<vcs>值將使 Git 通過 git-remote- <vcs> helper與遠程進行交互。

remote.<name>.prune

設(shè)置為 true 時,默認(rèn)從此遠程訪存將刪除遠程中不再存在的任何遠程跟蹤引用(就像--prune在命令行上給出該選項一樣)。覆蓋fetch.prune設(shè)置,如果有的話。

remotes.<group>

由“git remote update <group>”獲取的遙控器列表。見 git-remote [1]。

repack.useDeltaBaseOffset

默認(rèn)情況下,git-repack [1]創(chuàng)建使用 delta-base 偏移量的包。如果您需要使用比版本1.4.4更高的 Git 來共享您的存儲庫,請直接或通過諸如 http 之類的啞協(xié)議來共享您的存儲庫,那么您需要將此選項設(shè)置為“false”并重新打包。通過本地協(xié)議從舊的Git版本訪問不受此選項的影響。

repack.packKeptObjects

如果設(shè)置為 true,則git repack表示好像--pack-kept-objects已通過。有關(guān)詳細(xì)信息,請參閱 git-repack [1]。默認(rèn)為false正常,但是true如果正在寫入位圖索引(通過--write-bitmap-indexrepack.writeBitmaps)。

repack.writeBitmaps

如果為 true,git會在將所有對象打包到磁盤時寫入一個位圖索引(例如,當(dāng)git repack -a運行時)。此索引可以加速為克隆和提取創(chuàng)建的后續(xù)包的“計數(shù)對象”階段,但需要花費一些磁盤空間和花費在初始重新包裝上的額外時間。如果創(chuàng)建多個包文件,這不起作用。默認(rèn)為false。

rerere.autoUpdate

設(shè)置為 true 時,git-rerere使用先前記錄的分辨率干凈地解決沖突后,使用結(jié)果內(nèi)容更新索引。默認(rèn)為 false。

rerere.enabled

激活已解決沖突的記錄,以便相同的沖突塊可以自動解決,如果再次遇到?jīng)_突塊。默認(rèn)情況下,如果在該rr-cache目錄下有一個目錄,則啟用 git-rerere [1] $GIT_DIR,例如,如果以前在資源庫中使用了“rerere”。

sendemail.identity

配置標(biāo)識。給出時,導(dǎo)致sendemail.<identity>sendemail部分中的值優(yōu)先于部分中的值。默認(rèn)標(biāo)識是的值sendemail.identity。

sendemail.smtpEncryption

有關(guān)說明,請參閱 git-send-email [1]。請注意,此設(shè)置不受該identity機制的約束。

sendemail.smtpssl (deprecated)

sendemail.smtpEncryption = ssl已棄用的別名。

sendemail.smtpsslcertpath

ca證書的路徑(目錄或單個文件)。將其設(shè)置為空字符串以禁用證書驗證。

sendemail.<identity>.*

sendemail.*通過命令行或命令行選擇的身份特定版本的參數(shù)優(yōu)先于選擇此身份的參數(shù)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.smtpDomain   sendemail.smtpServer   sendemail.smtpServerPort   sendemail.smtpServerOption   sendemail.smtpUser   sendemail.thread   sendemail.transferEncoding   sendemail.validate   sendemail.xmailer

有關(guān)說明,請參閱git-send-email [1]。

sendemail.signedoffcc(已棄用)

endemail.signedoffbycc已棄用的別名。

sendemail.smtpBatchSize

每個連接發(fā)送的消息數(shù)量,之后會發(fā)生重新登錄。如果值為0或未定義,則在一個連接中發(fā)送所有消息。另請參閱--batch-sizegit-send-email [1] 的選項。

sendemail.smtpReloginDelay

秒重新連接到SMTP服務(wù)器之前等待。另請參閱--relogin-delaygit-send-email [1] 的選項。

showbranch.default

git-show-branch [1]的默認(rèn)分支集合。參見git-show-branch [1]。

splitIndex.maxPercentChange

使用拆分索引功能時,這將指定拆分索引可以包含的條目的百分比,與寫入新共享索引之前拆分索引和共享索引中的條目總數(shù)相比。值應(yīng)該介于0和100之間。如果值為0,則總是寫入新的共享索引,如果為100,則永遠不會寫入新的共享索引。默認(rèn)情況下,該值為20,因此如果分割索引中的條目數(shù)大于條目總數(shù)的20%,則會寫入新的共享索引。參見git-update-index [1]。

splitIndex.sharedIndexExpire

使用拆分索引功能時,自從該變量指定時間以來未修改的共享索引文件將在創(chuàng)建新的共享索引文件時被刪除。值“now”立即使所有條目到期,并且“never”完全禁止到期。默認(rèn)值是“2.weeks.ago”。請注意,每次基于它創(chuàng)建或讀取新的分割索引文件時,都會將共享索引文件修改(用于過期)。參見 git-update-index [1]。

status.relativePaths

默認(rèn)情況下,git-status [1]顯示相對于當(dāng)前目錄的路徑。設(shè)置此變量以false顯示相對于存儲庫根目錄的路徑(這是v1.5.4之前的Git的默認(rèn)值)。

status.short

設(shè)置為 true 以在 git-status [1]中默認(rèn)啟用--short。--no-short選項優(yōu)先于此變量。

status.branch

設(shè)置為 true 以在 git-status [1]中默認(rèn)啟用--branch。--no-branch選項優(yōu)先于此變量。

status.displayCommentPrefix

如果設(shè)置為 true,git 的狀態(tài)[1]將插入每條輸出線之前注釋前綴(開始core.commentChar,即#由默認(rèn)值)。這是 Git 1.8.4和之前的 git-status [1]的行為。默認(rèn)為 false。

status.showStash

如果設(shè)置為 true,git-status [1] 將顯示當(dāng)前隱藏的條目數(shù)量。默認(rèn)為false。

status.showUntrackedFiles

默認(rèn)情況下,git-status [1] 和 git-commit [1] 顯示當(dāng)前未被Git跟蹤的文件。僅包含未跟蹤文件的目錄僅以目錄名稱顯示。顯示未跟蹤的文件意味著Git需要lstat()整個存儲庫中的所有文件,這在某些系統(tǒng)上可能會很慢。所以,這個變量控制著命令如何顯示未跟蹤文件??赡艿闹凳牵?/p>

  • no  - 不顯示未跟蹤的文件。

  • normal  - 顯示未跟蹤的文件和目錄。

  • all  - 顯示未跟蹤目錄中的單個文件。

如果未指定此變量,則默認(rèn)為normal。這個變量可以用 git-status [1]和git-commit [1] 的 -u | --untracked-files選項覆蓋。

status.submoduleSummary

默認(rèn)為false。如果將其設(shè)置為非零數(shù)字或true(與-1或無限制數(shù)字相同),則將啟用子模塊摘要,并顯示修改子模塊的提交摘要(請參閱--git -summary-limit選項)子模塊[1])。請注意,對于所有子模塊,匯總輸出命令將被diff.ignoreSubmodules設(shè)置為all或僅針對其中的子模塊submodule.<name>.ignore=all。該規(guī)則的唯一例外是狀態(tài)和提交將顯示暫存的子模塊更改。要查看忽略子模塊的摘要,可以使用--ignore-submodules = dirty命令行選項或git submodule summary命令,該命令顯示類似的輸出,但不遵守這些設(shè)置。

stash.showPatch

如果設(shè)置為true,則git stash show沒有選項的命令將以補丁形式顯示隱藏條目。默認(rèn)為false。請參閱showgit-stash [1]中的命令說明。

stash.showStat

如果設(shè)置為true,則git stash show沒有選項的命令將顯示存儲條目的diffstat。默認(rèn)為true。請參閱showgit-stash [1]中的命令說明。

submodule.<name>.url

子模塊的 URL。這個變量通過 .gitmodules 文件復(fù)制到 git config git submodule init。用戶可以在通過獲取子模塊之前更改配置的 URL git submodule update。如果子模塊 <name> .active 或submodule.active 都未設(shè)置,則將此變量的存在用作后備,以指示子模塊是否對 git 命令感興趣。有關(guān)詳細(xì)信息,請參閱 git-submodule [1]和gitmodules [5]。

submodule.<name>.update

子模塊的默認(rèn)更新過程。該變量由git submodule initgitmodules [5]文件填充。請參閱updategit-submodule [1]中的命令說明。

submodule.<name>.branch

子模塊的遠程分支名稱,由git submodule update --remote。設(shè)置此選項以覆蓋.gitmodules文件中找到的值。有關(guān)詳細(xì)信息,請參閱git-submodule [1]和gitmodules [5]。

submodule.<name>.fetchRecurseSubmodules

該選項可用于控制此子模塊的遞歸提取。它可以通過使用 --no-recurse-submodules命令行選項“git fetch”和“git pull”來覆蓋。該設(shè)置將覆蓋 gitmodules [5]文件中的設(shè)置。

submodule.<name>.ignore

定義在什么情況下,“git status”和 diff 系列顯示已修改的子模塊。當(dāng)設(shè)置為“全部”時,它永遠不會被視為已修改(但它仍會顯示在狀態(tài)的輸出中,并在已執(zhí)行時進行提交),“臟”將忽略對子模塊工作樹的所有更改,并且只會帶來差異考慮子模塊的 HEAD 和超級項目中記錄的提交之間的關(guān)系?!拔锤櫋边€會讓子模塊在工作樹中顯示修改過的跟蹤文件。使用“none”(未設(shè)置此選項時的默認(rèn)值)還顯示在更改后的工作樹中未追蹤文件的子模塊。此設(shè)置將覆蓋此子模塊的 .gitmodules 中的任何設(shè)置,兩個設(shè)置都可以在命令行上使用“git submodule 命令不受此設(shè)置的影響。

submodule.<name>.active

指示子模塊是否對git命令感興趣的布爾值。此配置選項優(yōu)先于 submodule.active  配置選項。

submodule.active

重復(fù)字段,其中包含一個用于匹配子模塊路徑的 pathspec,以確定子模塊是否對 git 命令感興趣。

submodule.recurse

指定默認(rèn)情況下,命令是否遞歸到子模塊中。這適用于所有有--recurse-submodules選項的命令。默認(rèn)為 false。

submodule.fetchJobs

指定同時獲取/克隆多少個子模塊。正整數(shù)允許多達并行獲取的子模塊的數(shù)量。值為0會給出一些合理的默認(rèn)值。如果未設(shè)置,則默認(rèn)為1。

submodule.alternateLocation

指定克隆子模塊時子模塊如何獲得替代??赡艿闹凳?code>no,superproject。默認(rèn)情況下no,假定不添加引用。當(dāng)該值設(shè)置為superproject要克隆的子模塊時,計算其相對于超級項目替代項的替代位置。

submodule.alternateErrorStrategy

指定如何通過經(jīng)由計算得到的子模塊的交替來處理錯誤submodule.alternateLocation??赡艿闹凳?code>ignore,infodie。默認(rèn)是die。

tag.forceSignAnnotated

一個布爾值,指定創(chuàng)建的帶注釋的標(biāo)簽是否應(yīng)該由GPG簽名。如果--annotate在命令行中指定,則優(yōu)先于此選項。

tag.sort

該變量控制git-tag [1]顯示標(biāo)簽時的排序順序。如果沒有提供“--sort = <value>”選項,則此變量的值將用作默認(rèn)值。

tar.umask

這個變量可以用來限制tar歸檔項的權(quán)限位。默認(rèn)值是0002,這將關(guān)閉世界寫入位。特殊值“user”表示將使用歸檔用戶的umask。請參閱umask(2)和git-archive [1]。

transfer.fsckObjects

當(dāng)設(shè)置fetch.fsckObjects或未receive.fsckObjects設(shè)置時,將使用此變量的值。默認(rèn)為false。

transfer.hideRefs

字符串receive-packupload-pack用于決定哪些引用從他們的初始廣告中省略。使用多個定義來指定多個前綴字符串。排除了此變量的值中列出的層次結(jié)構(gòu)下的 ref,并在響應(yīng)git push或時隱藏git fetch。見receive.hideRefsuploadpack.hideRefs此配置的具體方案版本。

您也可以!在ref名稱的前面添加一個否定條目,并將其明確地公開,即使先前的條目將其標(biāo)記為隱藏。如果您有多個 hideRefs 值,則稍后的條目會覆蓋較早的條目(并且更具體的配置文件中的條目會覆蓋較不特定的條目)。

如果正在使用命名空間,則在與transfer.hiderefs模式匹配之前,命名空間前綴會從每個引用中剝離。例如,如果refs/heads/master在中指定transfer.hideRefs并且當(dāng)前命名空間是foo,則refs/namespaces/foo/refs/heads/master在廣告中將被省略,refs/heads/master并且refs/namespaces/bar/refs/heads/master仍然被廣告為所謂的“有”行。為了在裁剪之前匹配裁判^,請在裁判名稱前添加一個裁判。如果合并!^,!必須先指定。

即使你隱藏了引用,客戶仍然可以通過 gitnamespaces [7] 手冊頁的“安全”部分描述的技術(shù)竊取目標(biāo)對象; 最好將私人數(shù)據(jù)保存在單獨的存儲庫中。

transfer.unpackLimit

當(dāng)設(shè)置fetch.unpackLimit或未receive.unpackLimit設(shè)置時,將使用此變量的值。默認(rèn)值是100。

uploadarchive.allowUnreachable

如果為 true,則允許客戶端使用git archive --remote請求任何樹,無論是否可以從 ref 參考中獲得。有關(guān)更多詳細(xì)信息,請參閱 git-upload-archive [1]的“安全性”部分中的討論。默認(rèn)為false。

uploadpack.hideRefs

這個變量是相同的transfer.hideRefs,但只適用于upload-pack(并且因此只影響提取,不推進)。嘗試獲取隱藏參考git fetch將失敗。另見uploadpack.allowTipSHA1InWant。

uploadpack.allowTipSHA1InWant

當(dāng)uploadpack.hideRefs有效時,允許upload-pack接受一個提取請求,要求在隱藏參考的頂端提供一個對象(默認(rèn)情況下,這樣的請求被拒絕)。另見uploadpack.hideRefs。即使這是錯誤的,客戶端也可以通過gitnamespaces [7]手冊頁的“安全”部分中描述的技術(shù)竊取對象; 最好將私人數(shù)據(jù)保存在單獨的存儲庫中。

uploadpack.allowReachableSHA1InWant

允許upload-pack接受一個提取請求,要求提供可從任何參考提示中獲得的對象。但是,請注意,計算對象可達性的計算成本很高。默認(rèn)為false。即使這是錯誤的,客戶端也可以通過gitnamespaces [7]手冊頁的“安全”部分中描述的技術(shù)竊取對象; 最好將私人數(shù)據(jù)保存在單獨的存儲庫中。

uploadpack.allowAnySHA1InWant

允許upload-pack接受請求任何對象的獲取請求。默認(rèn)為false。

uploadpack.keepAlive

何時upload-pack開始pack-objects,在pack-objects準(zhǔn)備包裝時可能會有一段安靜的時間。通常情況下,它會輸出進度信息,但如果--quiet用于提取,pack-objects則在包數(shù)據(jù)開始之前不會輸出任何內(nèi)容。有些客戶和網(wǎng)絡(luò)可能會認(rèn)為服務(wù)器被掛起并放棄。設(shè)置此選項將指示upload-pack每隔uploadpack.keepAlive幾秒發(fā)送一個空的Keepalive數(shù)據(jù)包。將此選項設(shè)置為0將完全禁用 Keepalive 數(shù)據(jù)包。默認(rèn)值是5秒。

uploadpack.packObjectsHook

如果設(shè)置了此選項,upload-pack則將運行時git pack-objects為客戶端創(chuàng)建一個packfile,它將運行此shell命令。pack-objects它所would運行的命令和參數(shù)(包括git pack-objects開始處)被附加到shell命令中。掛鉤的stdin和stdout被視為pack-objects自己運行。也就是說,upload-pack將喂入用于pack-objects鉤子的輸入,并期望在stdout上完成一個包文件。

請注意,如果在配置庫級配置中看到此配置變量(這是針對從不受信任的存儲庫中獲取的安全措施),則忽略此配置變量。

url.<base>.insteadOf

任何以此值開頭的URL都將被重寫為啟動,而<base>。如果某個站點提供大量存儲庫并以多種訪問方式提供服務(wù),并且某些用戶需要使用不同的訪問方法,則此功能允許用戶指定任何等效的 URL 并讓 Git 自動將 URL 重寫為對于特定用戶來說,這是最好的選擇,即使對于網(wǎng)站上從未見過的存儲庫也是如此。如果多個字符串匹配給定的URL,則使用最長匹配。

請注意,任何協(xié)議限制都將應(yīng)用于重寫的URL。如果重寫將URL更改為使用自定義協(xié)議或遠程助手,則可能需要調(diào)整protocol.*.allow配置以允許請求。特別是,您希望用于子模塊的協(xié)議必須設(shè)置為always默認(rèn)值而不是默認(rèn)值user。請參閱protocol.allow上面的描述。

url.<base>.pushInsteadOf

任何以此值開頭的網(wǎng)址都不會被推送到; 相反,它將被重寫為以<base>開始,并且生成的 URL 將被推送到。在某些站點提供大量存儲庫并使用多種訪問方法(其中一些不允許推送)訪問它們的情況下,此功能允許用戶指定只能拉的 URL 并讓 Git 自動使用適當(dāng)?shù)?URL 來推送,即使是在網(wǎng)站上一個從未見過的存儲庫。當(dāng)多個 pushInsteadOf字符串匹配給定的 URL 時,將使用最長匹配。如果遠程有明確的pushurl,Git 會忽略該遠程的這個設(shè)置。

user.email

您的電子郵件地址將記錄在任何新創(chuàng)建的提交中??梢酝ㄟ^覆蓋GIT_AUTHOR_EMAIL,GIT_COMMITTER_EMAIL以及EMAIL環(huán)境變量。參見git-commit-tree [1]。

user.name

您的全名將記錄在任何新創(chuàng)建的提交中。可以通過覆蓋GIT_AUTHOR_NAMEGIT_COMMITTER_NAME環(huán)境變量。參見git-commit-tree [1]。

user.useConfigOnly

Git 的指導(dǎo),避免試圖猜測默認(rèn)值user.emailuser.name,而是只從配置檢索值。例如,如果您有多個電子郵件地址,并且希望為每個存儲庫使用不同的配置,那么將此配置選項設(shè)置為true全局配置以及名稱,Git 會在提交新提交之前提示您設(shè)置電子郵件在一個新克隆的倉庫中。默認(rèn)為false。

user.signingKey

如果在創(chuàng)建簽名標(biāo)記或提交時 git-tag [1]或 git-commit [1]沒有選擇您希望它自動使用的密鑰,則可以使用此變量覆蓋缺省選擇。這個選項不變地傳遞給 gpg 的--local-user參數(shù),所以你可以使用 gpg 支持的任何方法指定一個鍵。

versionsort.prereleaseSuffix (deprecated)

已棄用的別名versionsort.suffix。如果versionsort.suffix已設(shè)置,則忽略。

versionsort.suffix

即使在git-tag [1]中使用版本排序,具有相同基本版本但不同后綴的標(biāo)記名仍然按照字典順序排序,從而導(dǎo)致例如在主版本之后出現(xiàn)預(yù)發(fā)布標(biāo)簽(例如,“1.0”之后的“1.0-rc1”) 。可以指定該變量來確定具有不同后綴的標(biāo)簽的排序順序。

通過在此變量中指定單個后綴,包含該后綴的任何標(biāo)記名都將出現(xiàn)在相應(yīng)的主要版本之前。例如,如果變量設(shè)置為“-rc”,則所有“1.0-rcX”標(biāo)簽將出現(xiàn)在“1.0”之前。如果指定多次(每個后綴一次),則配置中后綴的順序?qū)⒋_定具有這些后綴的標(biāo)記名的排序順序。例如,如果“-pre”出現(xiàn)在配置中的“-rc”之前,則所有“1.0-preX”標(biāo)簽將在任何“1.0-rcX”標(biāo)簽之前列出。主釋放標(biāo)簽相對于具有各種后綴的標(biāo)簽的位置可以通過指定這些其他后綴之間的空后綴來確定。例如,如果后綴“-rc”,“”,“-ck”和“-bfs”

如果多個后綴匹配相同的標(biāo)記名,那么該標(biāo)記名將根據(jù)標(biāo)記名中最早位置開始的后綴進行排序。如果多個不同的匹配后綴從最早的位置開始,那么該標(biāo)記名將根據(jù)這些后綴中最長的那個進行排序。如果它們在多個配置文件中,則不同后綴之間的排序順序未定義。

網(wǎng)頁瀏覽器

指定可能由某些命令使用的Web瀏覽器。目前只有g(shù)it-instaweb [1]和git-help [1]可以使用它。

Previous article: Next article: