SYNOPSIS
git config [<file-option>] [--type=<type>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]] git config [<file-option>] [--type=<type>] --add <name> <value> git config [<file-option>] [--type=<type>] [--fixed-value] --replace-all <name> <value> [<value-pattern>] git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get <name> [<value-pattern>] git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get-all <name> [<value-pattern>] git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] [--name-only] --get-regexp <name-regex> [<value-pattern>] git config [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch <name> <URL> git config [<file-option>] [--fixed-value] --unset <name> [<value-pattern>] git config [<file-option>] [--fixed-value] --unset-all <name> [<value-pattern>] git config [<file-option>] --rename-section <old-name> <new-name> git config [<file-option>] --remove-section <name> git config [<file-option>] [--show-origin] [--show-scope] [-z|--null] [--name-only] -l | --list git config [<file-option>] --get-color <name> [<default>] git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>] git config [<file-option>] -e | --edit
DESCRIPTION
このコマンドを使用して、オプションを照会(query)/設定(set)/置換(replace)/設定解除(unset;削除)できます。名前は実際にはドットで区切られたセクションとキーであり、値はエスケープされます。
--add
オプションを使用すると、オプションに複数の行を追加できます。複数行で発生する可能性のあるオプションを更新または設定解除する場合は、value-pattern
( --fixed-value
オプションが指定されていない限り、拡張正規表現)を指定する必要があります。パターンに一致する既存の値のみが更新または設定解除されます。パターンと「一致しない」行を処理する場合は、前に1つの感嘆符(!
)を追加するだけです([EXAMPLES] も参照下さい)が、ただし、これは --fixed-value
オプションが使用されていない場合のみ機能することに注意してください。
--type=<type>
オプションは「git config」に指示して、指定の<type>の下で入力値(incoming value)と出力値(outgoing value)が正規化可能であることを確認します。 -type=<type>
が指定されていない場合、正規化は実行されません。 呼び出し元は、既に指定済の --type
指定子を --no-type
で設定解除できます。
読み取り時、値はデフォルトでシステム、グローバル、リポジトリのローカル構成ファイルから読み取られ、オプション --system
、--global
、 --local
、 --worktree
、 `--file <filename> ` を使用して、その場所から「のみ」読み取るようにコマンドに指示できます([FILES] 参照)。
書き込み時、新しい値はデフォルトでリポジトリのローカル構成ファイルに書き込まれます。オプション --system
、--global
、 --worktree
、--file <filename> ` を使用すれば、コマンドにその場所に書き込むよう指示できます(あなたは `--local
と言うこともでき、そしてこれはデフォルトです)。
このコマンドは、エラー時にゼロ以外のステータスで失敗します。 いくつかの終了コードは以下のとおりです:
-
セクションキーが不正(ret=1)
-
セクションまたは名前が与えられてない(ret=2)
-
configファイルが不正(ret=3)
-
configファイルに書き込みできない(ret=4)
-
存在しないオプションの設定を削除(unseet)しようとしました(ret=5)
-
あなたは、複数の行が一致するオプションを設定(set)/削除(unset)しようとしています(ret=5)
-
不正な正規表現を使おうとしています(ret=6)
成功の場合、コマンドは終了コード 0 を返します。
使用可能なすべての構成変数のリストは、 git help --config
コマンドを使用して取得できます。
OPTIONS
-
--replace-all
-
デフォルトの振る舞いでは最大1行を置き換えますが、このオプションより、キー(およびオプションで
value-pattern
)に一致するすべての行が置換されます。 -
--add
-
既存の値を変更せずに、オプションに新しい「行を追加」します。 これは
--replace-all
のvalue-pattern
として^$
を指定しても同じ事が可能です。 -
--get
-
指定されたキーの値を取得します(オプションで、値に一致する正規表現でフィルタリングされます)。キーが見つからなかった場合はエラーコード1を返し、複数のキー値が見つかった場合は「最後の値」を返します。
-
--get-all
-
--get
と同様ですが、複数値キー(複数行;multivar)のすべての値を返します。 -
--get-regexp
-
--get-all
と同様ですが、名前を正規表現として解釈し、キー名を書き出します。正規表現の照合では現在、大文字と小文字が区別され、セクション名と変数名が小文字になっている正規化されたバージョンのキーに対して実行されますが、サブセクション名は大文字と小文字が区別されません。 -
--get-urlmatch <name> <URL>
-
2つの部分からなる名前 section.key を指定すると、 <URL> 部分が指定したURLに最もよく一致する section.<URL>.key の値が返されます(そのようなキーが存在しない場合は、 section.keyの値にフォールバックします)。セクションだけを名前として指定した合は、当該セクション内のすべてのキー・値をリストします。値が見つからない場合はエラーコード1を返します。
-
--global
-
オプション読み取りの場合: 使用可能なすべてのファイルからではなく、グローバル
~/.gitconfig
と$XDG_CONFIG_HOME/git/config
からのみ読み取ります。[FILES] も参照して下さい。
-
--system
-
オプション書き込みの場合: リポジトリの
.git/config
ではなくシステム全体の$(prefix)/etc/gitconfig
に書き込みます。オプション読み取りの場合: 使用可能なすべてのファイルからではなく、システム全体の
$(prefix)/etc/gitconfig
からのみ読み取ります。[FILES] も参照して下さい。
-
--local
-
オプションを書き込む場合: リポジトリの
.git/config
ファイルに書き込みます。これがデフォルトの動作です。読み取りオプションの場合: 使用可能なすべてのファイルからではなく、リポジトリ
.git/config
からのみ読み取ります。[FILES] も参照して下さい。
-
--worktree
-
extensions.worktreeConfig
が有効な場合に$GIT_DIR/config.worktree
が読み書きされることを除いて、--local
と同様です。 そうでない場合は--local
と同じです。$GIT_DIR
は、メインの作業ツリーでは$GIT_COMMON_DIR
と同じですが、他の作業ツリーでは$GIT_DIR/worktrees/<id>/
の形式であることに注意してください。extensions.worktreeConfig
を有効にする方法については、 git-worktree(1) を参照してください。 -
-f <config-file>
-
--file <config-file>
-
オプション書き込みの場合: リポジトリの
.git/config
ではなく、指定のファイルに書き込みます。オプション読み取りの場合: 使用可能なすべてのファイルからではなく、指定のファイルからのみ読み取ります。
[FILES] も参照して下さい。
-
--blob <blob>
-
--file
に似ていますが、ファイルの代わりに指定のブロブを使用します。例えば、master:.gitmodules
を使用して、masterブランチのファイル.gitmodules
から値を読み取ることができます。ブロブ名の綴りのより完全なリストについては、 gitrevisions(7) の「SPECIFYING REVISIONS」セクションを参照してください。 -
--remove-section
-
指定のセクションを構成ファイルから削除します。
-
--rename-section
-
指定のセクションの名前を新しい名前に変更します。
-
--unset
-
キーに一致する行を構成ファイルから削除します。
-
--unset-all
-
キーに一致するすべての行を構成ファイルから削除します。
-
-l
-
--list
-
構成ファイルに「設定されている」すべての変数とその値を一覧表示します(訳注:使用可能なすべての構成変数のリストは、
git help --config
)。 -
--fixed-value
-
value-pattern
引数と一緒に使用する場合、value-pattern
を正規表現ではなく単なる文字列として扱います。これにより、値がvalue-pattern
と完全に等しいものにのみ一致する、名前/値のペアだけに制限されます。 -
--type <type>
-
「git config」は、入力または出力が指定された型(type)の制約の下で有効であることを保証し、その型の正規形式で出力値を正規化します。
有効な型には以下のものがあります:
-
bool
: 値をtrue
または `false`として正規化します。 -
int
: 値を単純な10進数として正規化します。オプションのサフィックスk
またm`または `g
を使用すると、入力時に値にそれぞれ1,024または1,048,576(10242)または1,073,741,824(10243)が掛け算されます。 -
bool-or-int
: 上記のように、bool
またはint
のいずれかに従って正規化します。 -
path
:$HOME
の値を意味する~
を先頭に追加し、指定のユーザのホームディレクトリを~user
として正規化します。この~
は値を書き込むときには効果がありません(ただし、あなたはコマンドラインからgit config section.variable ~/
と実行してシェルに展開をさせることができます)。 -
expiry-date
: 固定または相対の日付文字列からタイムスタンプに変換することで正規化します。この指定は値を書き込むときには効果がありません。 -
color
: 値を取得するときに、ANSIカラーエスケープシーケンスに変換して正規化します。値を設定するとき、指定された値がANSIカラーとして正規化可能であることを確認するために健全性チェックが実行されますが、正規化自体は行われず、そのまま書き込まれます。
-
-
--bool
-
--int
-
--bool-or-int
-
--path
-
--expiry-date
-
タイプ指定子を選択するための歴史的オプション。 代わりに
--type
を優先します(上記参照)。 -
--no-type
-
(これ以前に設定されていた場合、)これ以前に設定された型指定子の設定を解除します。このオプションは、「git config」が取得した変数を正規化しないように要求します。
--no-type
は、--type=<type>
または--<type>
が無い場合は何の効果もありません。 -
-z
-
--null
-
値やキーを出力するすべてのオプションで、値を(改行ではなく)常にヌルバイト(\0)で終了します。代わりに、キーと値の間の区切り文字として改行を使用します。これにより、例えば、改行を含む値を混乱することなく、出力を安全にパースできます。
-
--name-only
-
--list
または--get-regexp
の構成変数で名前のみを出力します。 -
--show-origin
-
照会されたすべての構成オプションの出力に、その構成オプションの出処の種類(ファイル、標準入力、blob、コマンドライン)と実際の出処(設定ファイルのパス、参照、または該当する場合はblobのID)を追加します。
-
--show-scope
-
--show-origin
と同様に、クエリされたすべての設定オプションの出力をその値のスコープ(worktree, local, global, system, command)で拡張します。 -
--get-colorbool <name> [<stdout-is-tty>]
-
name
の色設定(たとえばcolor.diff
)を見つけて、true
またはfalse
を出力します。<stdout-is-tty>
はtrue
またはfalse
のいずれかである必要があり、構成でauto`と表示されている場合に考慮されます。 `<stdout-is-tty>
がない場合は、コマンド自体の標準出力をチェックし、色を使用する場合はステータス0で終了し、それ以外の場合はステータス1で終了します。name
の色設定が未定義の場合、コマンドはフォールバックとしてcolor.ui
を使用します。 -
--get-color <name> [<default>]
-
name
(例:color.diff.new
) に設定されている色を見つけて、ANSIカラーエスケープシーケンスとして標準出力に出力します。name
に色が設定されていない場合は、オプションのdefault
パラメータが代わりに使用されます。--type=color [--default=<default>]
は--get-color
よりも優先されます(ただし、--get-color
は、--type=color
によって出力される末尾の改行を省略します)。 -
-e
-
--edit
-
指定の構成ファイルを変更するためのエディタを開きます。指定できるのは、
--system
または--global
または「リポジトリ」(指定なし;デフォルト)、のいずれかです。 -
--[no-]includes
-
値を検索するときは、設定ファイルの
include.*
ディレクティブを尊重します。特定のファイルが指定されている場合(たとえば、--file
、--global
などを使用した場合)はデフォルトでoff
になり、すべての構成ファイルを検索する場合はon
になります。 -
--default <value>
-
--get
を使用していて、要求した変数が見つからない場合、 <value> がその変数に割り当てられた値であるかのように動作します。
CONFIGURATION
pager.config
は、構成を一覧表示する場合、つまり、 ` --list` 、または複数の結果を返す可能性のある --get-*
のいずれか、を使用する場合にのみ尊重されます。デフォルトでは pager を使用します。
FILES
デフォルトでは、 「git config」は複数のファイルから構成オプションを読み取ります:
- $(prefix)/etc/gitconfig
-
システム全体(PC毎)の構成ファイル
- $XDG_CONFIG_HOME/git/config
- ~/.gitconfig
-
ユーザー固有の構成ファイル。 XDG_CONFIG_HOME 環境変数が設定されていないか空の場合、 $XDG_CONFIG_HOME として $HOME/.config/ が使用されます。
これらは「グローバル」(global)構成ファイルとも呼ばれます。 両方のファイルが存在する場合、両方のファイルが上記の順序で読み取られます。
- $GIT_DIR/config
-
リポジトリ毎の構成ファイル。
- $GIT_DIR/config.worktree
-
これはオプションであり、
extensions.worktreeConfig
が $GIT_DIR/config に存在する場合にのみ検索されます。
任意の git コマンドを実行するとき、 -c
オプションを使用して、 追加の構成パラメーターを指定することもできます。 詳細については、 git(1) を参照してください。
オプションは、利用可能なこれらすべてのファイルから読み取られます。 グローバルまたはシステム全体の構成ファイルが見つからないか読み取れない場合、それらは無視されます。 リポジトリ構成ファイルが見つからないか読み取れない場合、 「git config」はゼロ以外のエラー・コードで終了します。 ファイルが読み取れない場合はエラー・メッセージが生成されますが、見つからない場合は生成されません。
ファイルは上記の順序で読み取られ、「最後」に見つかった値が前に読み取った値よりも優先されます。なお、複数値(multiple values)を取得すると、すべてのファイルのキーのすべての値が使用されます。
デフォルトでは、オプションはリポジトリ固有の構成ファイルにのみ書き込まれます。 これは、 --replace-all
や --unset
などのオプションにも影響することに注意してください。 「git config
は、一度に 1 つのファイルのみを変更します。」
ファイルのパスを --file
オプションで指定したり、構成スコープ(configuration scope)を --system
または --global
または --local
または --worktree
で指定することにより、どの構成ソース(configuration sources)を読み書きするかを制限することが可能です。 詳しくは、上記の [OPTIONS] を参照してください。
SCOPES
各構成ソース(configuration source)は、構成スコープ(configuration scope)内にあります。それらスコープは以下のとおりです:
- system
-
$(prefix)/etc/gitconfig
- global
-
$XDG_CONFIG_HOME/git/config
~/.gitconfig
- local
-
$GIT_DIR/config
- worktree
-
$GIT_DIR/config.worktree
- command
-
GIT_CONFIG_{COUNT,KEY,VALUE} 環境変数 (下記 [ENVIRONMENT] 参照)
-c
オプション
command
を除いて、各スコープは各コマンド・ライン・オプションに対応します: --system
, --global
, --local
, --worktree
オプションを読み取るとき、スコープを指定すると、そのスコープ内のファイル達からオプション達のみが読み取られます。 オプションを記述するときに、スコープを指定すると、(リポジトリ固有の構成ファイルではなく) そのスコープ内のファイルに書き込まれます。 完全な説明については、上記 [OPTIONS] を参照してください。
ほとんどの構成オプションは、定義されているスコープに関係なく適用されますが、一部のオプションは特定のスコープでのみ適用されます。 詳細については、それぞれのオプションのドキュメントを参照してください。
Protected configuration
保護された構成(protected configuration)は、 system
と global
と command
スコープを参照します。 セキュリティ上の理由から、特定のオプションは、保護された構成で指定されている場合にのみ尊重され、それ以外の場合は無視されます。
Gitはこれらのスコープを、あたかもユーザーまたは信頼できる管理者によって制御されているかのように扱います。これは、これらのスコープを制御する攻撃者は、Gitを使用せずに実質的な害を与えることができるのだから、当然、ユーザーの環境は攻撃者からこれらのスコープを保護しているに違いないはずだと想定するのです。(訳注:ユーザ側で攻撃されないようにちゃんと保護しといてください、Git側では責任もてません の意)
ENVIRONMENT
[FILES] も参照して下さい。
- GIT_CONFIG_COUNT
- GIT_CONFIG_KEY_<n>
- GIT_CONFIG_VALUE_<n>
-
GIT_CONFIG_COUNTが正の数に設定されている場合、その数までのすべての環境ペア GIT_CONFIG_KEY_<n> と GIT_CONFIG_VALUE_<n> がプロセスのランタイム構成に追加されます。構成ペアはゼロインデックスです。キーまたは値が欠落している場合は、エラーとして扱われます。空のGIT_CONFIG_COUNTは、GIT_CONFIG_COUNT=0と同じように扱われます。つまり、ペアは処理されません。これらの環境変数は構成ファイルの値をオーバーライドしますが、
git -c
を介して渡された明示的なオプションによってオーバーライドされます。これは、共通の構成で複数のgitコマンドを生成したいが、スクリプトを作成する場合など、構成ファイルに依存できない場合に役立ちます。
- GIT_CONFIG
-
git config
に--file
オプションが指定されていない場合は、--file
を介して提供されているかのようにGIT_CONFIG
によって指定されたファイルを使用します。この変数は他のGitコマンドには影響せず、主に歴史的な互換性のためのものです。 通常、--file
オプションの代わりに使用する理由はありません。
EXAMPLES
以下の .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をtrueに設定できます
% git config core.filemode true
この架空のプロキシ・コマンド・エントリには、実際には適用先の URL を識別するための接尾辞があります。 kernel.org のエントリを ssh
に変更する方法は以下のとおりです:
% git config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
これにより、kernel.orgのキーと値のペアのみが置き換えられます。
renamesのエントリを削除するには
% git config --unset diff.renames
マルチ変数(multivar)(上記のcore.gitproxyなど)のエントリを削除する場合は、正確に1行の値に一致する正規表現を指定する必要があります。
特定のキーの値を照会するには、次のようにします。
% git config --get core.filemode
または
% git config core.filemode
また、マルチ変数(multivar)の照会は:
% git config --get core.gitproxy "for kernel.org$"
マルチ変数のすべての値を知りたい場合は、次のようにします:
% git config --get-all core.gitproxy
あなたが危険極まりない人生を送りたい場合は、以下のようにして core.gitproxy の「全て」を新しいものに置き換えることができます。
% git config --replace-all core.gitproxy ssh
しかし、あなたが本当にデフォルトプロキシの行、つまり「for …」の接尾辞のない行だけを置き換えたい場合は、次のようにします:
% git config core.gitproxy ssh '! for '
感嘆符(!
)と実際に一致させるには、以下のことを行う必要があります。
% git config section.key value '[!]'
既存のプロキシを変更せずに新しいプロキシを追加するには、以下を使用します。
% 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}"
URL が https://weak.example.com
の場合、 http.sslVerify
はfalseに設定され、他のすべてのURLでは true
に設定されます:
% git config --type=bool --get-urlmatch http.sslverify https://good.example.com
true
% git config --type=bool --get-urlmatch http.sslverify https://weak.example.com
false
% git config --get-urlmatch http https://weak.example.com
http.cookieFile /tmp/cookie.txt
http.sslverify false
CONFIGURATION FILE
Git構成ファイルには、Gitコマンドの動作に影響を与えるいくつかの変数が含まれています。各リポジトリ内のファイル .git/config
と、オプションで config.worktree
(git-worktree(1) の「CONFIGURATION FILE」セクションを参照)は、そのリポジトリの設定を保存するために使用され、 $HOME/.gitconfig
は、ユーザーごとの構成を .git/config
ファイルのフォールバック値として保存するために使用されます。 ファイル /etc/gitconfig
を使用して、システム全体のデフォルト設定を保存できます。
構成変数は、Git配管コマンドとGit磁器コマンドの両方で使用されます。変数はセクションに分割されます。変数自体の完全修飾変数名は最後のドット区切りセグメントであり、セクション名は最後のドットより前のすべてです。変数名では大文字と小文字が区別されず、英数字(alphanumeric)と -
(\x2d) のみが許可され、英字(alphabetic)で始まる必要があります。一部の変数は複数回現れる場合があり、その変数はmultivalueであると言います(訳注:multiple lines(複数行)という表現とmultivalueと言う表現が混在する。configでは同じ意味)。
Syntax
構文はかなり柔軟で寛容です。空白(whitespace)はほとんど無視されます。 #
と ;
は、そこからその行の行末までコメントにします。 空白行は無視されます。
このファイルは、 セクションと変数で構成されています。 セクションは角括弧内([
… ]
)のセクション名で始まり、 次のセクションが始まるまで続きます。 セクション名では大文字と小文字は区別されません。 セクション名には、 英数字(alphanumeric) と -
(\x2d) と .
(\x2e) のみを使用できます。 各変数はあるセクションに属している必要があります。 つまり、変数の最初の設定の前にセクション・ヘッダーが必要です。
セクションはさらにサブセクションに分割できます。サブセクションを開始するには、以下の例のように、セクションヘッダーで、セクション名からスペースで区切って、その名前を二重引用符で囲みます:
[section "subsection"]
サブセクション名では大文字と小文字が区別され、改行とヌルバイト(\x00)以外の任意の文字を含めることができます。 二重引用符 "
(\x22)と バックスラッシュ(\x5c;日本の環境では円記号で表示される事がある)は、それぞれ \"
と \\
としてエスケープすることで含めることができます。 他の文字の前にあるバックスラッシュは、読み取るときに削除されます。 たとえば、 \t
は t
として読み取られ、 \0
は 0
として読み取られます。セクションヘッダーは複数行にまたがることはできません。変数は、セクションまたは特定のサブセクションに直接属する場合があります。 [section" subsection "]
がある場合は [section]
も使用できますが、必須ではありません。
非推奨の [section.subsection]
構文があります。この構文では、サブセクション名は小文字に変換され、大文字と小文字が区別されて比較されます。これらのサブセクション名は、セクション名と同じ制限に従います。
他のすべての行(およびセクション・ヘッダーの後の行の残りの部分)は、 name = value
(または単に name
)の形式で設定変数として認識されます( name
形式は name = true
の省略形で、変数をブール値 true
に設定します)。変数名では大文字と小文字が区別されず、英数字(alphanumeric)と -
(\x2d) のみが許可され、英字(alphabetic)で始まる必要があります。
値を定義する行は、 \
(\x5c) で終了することにより、次の行に続けることができます。続けた時、バックスラッシュと行末コードは削除されて認識されます。 name =
の後の先頭の空白と、その行で最初に現れるコメント文字 #
または ;
以降行末まで、または、行末尾の空白は、二重引用符で囲まれていない限り破棄されます。 値内の内部空白はそのまま保持されます。
ダブルクォートで囲まれた中では、ダブルクォート "
とバックスラッシュ \
文字はエスケープしなければなりません。 "
を表わすには \"
を使い、 \
を表わすには \\
を使ってください。
( \"
と \\
に加えて)認識されるエスケープシーケンスは、改行文字(NL;newline)が \n
、水平タブ(HT;TAB)が \t
、バックスペース(BS)が \b
です。他のエスケープシーケンス(8進エスケープシーケンスを含む)は無効です。
Includes
include
セクションと includeIf
セクションを使用すると、別のソースからの設定ディレクティブを含めることができます。これら2つのセクションは、条件がtrueと評価されない場合 includeIf
セクションは無視されることを除けば、全く同じ動作です。 以下の「Conditional includes」を参照してください。
特別な include.path
(または includeIf.*.path
)変数をインクルードするファイルの名前に設定することにより、別の構成ファイルをインクルードできます。 変数はその値としてパス名を取り、チルダ展開の対象となります。これらの変数は複数回指定できます。
インクルードファイルの内容は、includeディレクティブの場所で見つかったかのように、すぐに挿入されます。変数の値が相対パスである場合、そのパスは、includeディレクティブが見つかった構成ファイルからの相対パスであると見なされます。例については、以下を参照してください。
Conditional includes
includeIf.<condition>.path
変数をインクルードするファイルの名前に設定することにより、条件付きで別の構成ファイルをインクルードできます。
条件は、キーワードで始まり、その後にコロンと、形式と意味がキーワードによって異なるいくつかのデータが続きます。サポートされているキーワードは以下のとおりです:
-
gitdir
-
キーワード
gitdir:
に続くデータは、グロブ・パターンとして使用されます。 .git ディレクトリの場所がパターンと一致する場合、インクルード条件が満たされます。.git
の場所は自動検出されるか、$GIT_DIR
環境変数から取得されます。 リポジトリが .git ファイルを介して(つまり、サブモジュールやリンクされたワークツリーなどから)自動検出される場合、最終的に検出される .git の場所とは、 .git ファイルの場所ではなく .git ファイルからたどった .gitディレクトリの場所です。パターンには、標準のグロブ・ワイルドカードと、複数のパス部分に一致する可能性のある2つの追加のワイルドカード
**/
と/**
を含めることができます。 詳細については、 gitignore(5) を参照してください。 便宜上、以下の記法が使えます:-
パターンが
~/
で始まる場合、~
は環境変数HOME
の内容に置き換えられます。 -
パターンが
./
で始まる場合、現在の設定ファイルを含むディレクトリに置き換えられます。 -
パターンが
~/
・./
・/
のいずれでも始まらない場合、**/
自動的に先頭に追加されます。たとえば、パターンfoo/bar
は**/foo/bar
になり、/any/path/to/foo/bar
と一致します。 -
パターンが
/
で終わる場合、**
が自動的に追加されます。 たとえば、パターンfoo/
はfoo/**
になります。言い換えると、「foo」ディレクトリとその中のすべてに再帰的に一致します。
-
-
gitdir/i
-
これは、照合が大文字と小文字を区別せずに行われることを除いて、
gitdir
と同じです(大文字と小文字を区別しないファイルシステムなど)。 -
onbranch
-
キーワード
onbranch:
に続くデータは、標準のグロブワイルドカードと、複数のパス部分に一致する可能性のある2つの追加のワイルドカード**/
と/**
を含むパターンと見なされます。現在チェックアウトされているブランチの名前がパターンと一致するワークツリーにいる場合、インクルード条件が満たされます。パターンが
/
で終わる場合、**
が自動的に追加されます。 たとえば、パターンfoo/
はfoo/**
になります。つまり、foo/
で始まるすべてのブランチに一致します。これは、ブランチが階層的に編成されていて、その階層内のすべてのブランチに構成を適用する場合に役立ちます。 -
hasconfig:remote.*.url:
-
このキーワードに続くデータは、標準のグロブ・ワイルドカード(globbing wildcards)と、複数コンポーネントに一致する 2 つの追加ワイルドカード
**/
と/**
を使用したパターンと見なされます。 このキーワードが最初に表れた時、構成ファイルの残りでremote URL がスキャンされます(値は適用されません)。 このパターンに一致するremote URL が少なくとも 1 つ存在する場合、インクルード条件が満たされます。このオプションによって (直接的または間接的に) インクルードされるファイルには、remote URL を含めることはできません。
注意:他の includeIf 条件とは異なり、この条件の解決は、条件を読み取る時点ではまだわかっていない情報に依存することに注意してください。 典型的なユース・ケースは、このオプションがシステム・レベルまたはグローバル・レベルの構成として存在し、 remote URL がローカル・レベルの構成にあるというものです。 したがって、この状態を解決するときは前方をスキャンする必要があります。 インクルードされる可能性のあるファイルが、そのようなファイルがインクルードされる可能性があるかどうかに影響を与える、鶏が先か卵が先かという問題を回避するために、Git は、これらのファイルがこれらの条件の解決に影響を与えることを禁止する (したがって remote URL を宣言することを禁止する) ことで、この循環を断ち切ります。
このキーワードの命名に関しては、より多くの変数ベースのインクルード条件をサポートする命名スキームとの前方互換性のためですが、現在、Git は上記と正確に同じキーワードのみをサポートしています。
gitdir
と gitdir/i
を介したマッチングに関するいくつかの注意事項:
-
$GIT_DIR
の中のシンボリックリンクは、マッチ前に解決されません。 -
シンボリックリンクバージョンとrealpathバージョンの両方のパスが、
$GIT_DIR
の値と照合されます。例えば~/git
が/mnt/storage/git
へのシンボリックリンクである場合、gitdir:~/git
とgitdir:/mnt/storage/git
の両方が一致します。これは、Git v2.13.0 でのこの機能の最初のリリースには当てはまりませんでした。これは、realpathバージョンにのみ一致していました。この機能の初期リリースとの互換性を希望する構成では、realpathバージョンのみ、あるいは両方のバージョンを指定する必要があります。
-
注意: 「../」は特別なものではなく、文字通り一致することに注意してください。これは、あなたが望むものではない可能性があります。
Example
# 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
; include only if we are in a worktree where foo-branch is
; currently checked out
[includeIf "onbranch:foo-branch"]
path = foo.inc
; include only if a remote with the given URL exists (note
; that such a URL may be provided later in a file or in a
; file read after this file is read, as seen in this example)
[includeIf "hasconfig:remote.*.url:https://example.com/**"]
path = foo.inc
[remote "origin"]
url = https://example.com/git
Values
多くの変数の値は単純な文字列として扱われますが、特定のタイプの値をとる変数があり、それらの綴り方に関する規則があります。
- boolean
-
変数がブール値をとると言われるとき、
true
やfalse
や多くの同義語が受け入れられます。 なお、これらはすべて大文字と小文字を区別しません。- true
-
ブール値 true のリテラルは、
yes
とon
とtrue
と1
です。 また、= <value>
無しで定義された変数は true と見なされます。 - false
-
ブール値 false リテラルは、
no
とoff
とfalse
と0
と 空文字列です。--type = bool
型指定子を使用して値を正規形に変換する場合、git config
は、値の出力をtrue
またはfalse
(小文字で表記)にします。
- integer
-
さまざまなサイズを指定する多くの変数の値には、「k」、「M」などの接尾辞を付けることができます。これは、「数値に1024掛けた値」、「数値に1024x1024を掛けた値」などを意味します。
- color
-
色をとる変数の値は、スペースで区切られた色(最大で2つ、1つは前景用(foreground)、もう1つは背景用(background))と、(必要な数の)属性(attribute)の「リスト」です。
使用できる基本色は、
normal
とblack
とred
とgreen
とyellow
とblue
とmagenta
とcyan
とwhite
とdefault
です。与えられた最初の色は前景用です。2番目は背景用です。normal
とdefault
を除くすべての基本色には、brightred
のように色の前にbright
と付けることで指定できる明るいバリエーションがあります。色
normal
は色を変更しません。 空の文字列と同じですが、背景色のみを指定する場合の前景色として使用できます (たとえば、normal red
)。色
default
は、色を端末のデフォルトに明示的にリセットします。たとえば、クリアされた背景を指定します。 端末によって異なりますが、これは通常white black
に設定するのと同じではありません。色は0から255までの数字で指定することもできます。これらはANSI256色モードを使用します(ただし、すべての端末がこれをサポートしているわけではないことに注意してください)。端末が24ビットRGB値をサポートしている場合は
#ff0ab3
のように16進数として指定することもできます。受け入れられる属性(attribute)は、
bold
とdim
とul
とblink
とreverse
とitalic
とstrike
(取り消し線(cross-out)または「取り消し線」の文字(strikethrough letters)の場合) です。色に関する属性の位置(前、後、または中間)は重要ではありません。特定の属性は、それらの前に「no」または「no-」を付けることによってオフにすることができます(たとえば、「noreverse」、「no-ul」など)。疑似属性
reset
は、指定された色を適用する前に、すべての色と属性をリセットします。 たとえば、reset green
は、アクティブな属性のない緑の前景とデフォルトの背景になります。空のカラー文字列は、色の効果をまったく生成しません。 これは、色を完全に無効にすることなく、特定の要素の色付けを回避するために使用できます。
gitで事前定義されたカラースロットの場合、属性は、カラー出力の各アイテムの先頭でリセットされることを意図しています。したがって、
color.decorate.branch`を
black`に設定すると、同じ出力行の前のものがbold
または他の属性でペイントされるように設定されている場合(たとえばlog --decorate
出力のブランチ名のリストの前で括弧を開く)でも、そのブランチ名がプレーンなblack
でペイントされます。ただし、カスタムログ形式では、より複雑で階層化された色付けが行われる場合があり、否定された形式が役立つ場合があります。 - pathname
-
パス名の値をとる変数には、
~/
または~user/
で始まる文字列を指定できます。このような文字列には、通常のチルダ展開が行われます。~/
は$HOME
の値に展開され、~user/
は指定のユーザーのホームディレクトリに展開されます。パスが
%(prefix)/
で始まる場合、残りはGitの「ランタイムプレフィックス」に関連するパス、つまりGit自体がインストールされた場所に関連するパスとして解釈されます。 たとえば、%(prefix)/bin/
は、Git実行可能ファイル自体が存在するディレクトリを指します。Gitがランタイムプレフィックスのサポートなしでコンパイルされた場合、代わりにコンパイルされたプレフィックスが置き換えられます。万が一、展開してはならないリテラルパスを指定する必要がある場合は、./%(prefix)/bin
のように接頭辞./
を付ける必要があります。
Variables
注意: このリストは包括的ではなく、必ずしも完全ではないことに注意してください。コマンド固有の変数については、適切なマニュアルページに詳細な説明があります。
他のgit関連ツールは、それら独自の変数を使用する場合があります。 あなた独自のツールで使用する新しい変数を考案するときは、 それらの名前がGit自体や他の一般的なツールで使用されているものと競合しないことを確認し、かつ、それをあなたのドキュメントに記述してください。
- advice.*
-
これらの変数は、新しいユーザーを支援するために設計されたさまざまなオプションのヘルプメッセージを制御します。すべての「advice.*」変数はデフォルトで「true」に設定されており、これらを「false」に設定することで、ヘルプが不要であることをGitに伝えることができます。
- ambiguousFetchRefspec
-
複数のremoteトの fetch refspec が同一のリモート追跡ブランチ名前空間にマップされ、 ブランチ追跡のセットアップが失敗する場合に表示されるアドバイス。
- fetchShowForcedUpdates
-
git-fetch(1)がrefの更新後に強制更新を計算したり、 チェックが無効になっていることを警告したりするのに 長い時間がかかる場合に表示されるアドバイス。
- pushUpdateRejected
-
pushNonFFCurrent
とpushNonFFMatching
とpushAlreadyExists
とpushFetchFirst
とpushNeedsForce
とpushRefNeedsUpdate
を 同時に無効にする場合は、この変数をfalse
に設定します。 - pushNonFFCurrent
-
現在のブランチへの non-fast-forward 更新が原因で git-push(1) が失敗した場合に表示されるアドバイス。
- pushNonFFMatching
-
git-push(1) を実行し、 「matching refs」を明示的にプッシュ(つまり あなたは「:」を使用したか、 あなたの現在のブランチではないrefspecを指定した)して、 「non-fast-forward」エラーが発生したときに表示されるアドバイスです。
- pushAlreadyExists
-
git-push(1) が、 fast-forwarding の対象とならない更新(タグなど)を拒否した場合に表示されます。
- pushFetchFirst
-
git-push(1) が、私たちが持っていないオブジェクトを指す リモート参照を上書きしようとする更新を 拒否した場合に表示されます。
- pushNeedsForce
-
git-push(1) が、 コミットっぽくないオブジェクトを指すリモートrefを上書きしようとする更新、 またはコミットっぽくないブジェクトを指すリモートrefを作成しようとする更新を 拒否した場合に表示されます。
- pushUnqualifiedRefname
-
git-push(1) が、 ソースと宛先のrefsに基づいて、 ソースが属するリモートref名前空間を推測しようとするのをあきらめたときに表示されます。 ただし、 ソースオブジェクトのタイプに基づいて、 refs/heads/* または refs/tags/* のいずれかにプッシュすることを提案できる場合もあります。
- pushRefNeedsUpdate
-
git-push(1) が、 リモート追跡refにローカルにない更新がある場合に、 ブランチの強制更新を拒否した場合に表示されます。
- skippedCherryPicks
-
git-rebase(1) が、 アップストリームブランチにすでにチェリーピックされているコミットをスキップした場合に表示されます。
- statusAheadBehind
-
git-status(1) が、 リモート追跡refと比較したローカルrefの先行(ahead)/遅延(behind)カウントを計算し、 その計算に予想よりも時間がかかる場合に表示されます。
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) がローカルの変更を上書きしないようにマージを拒否した場合に、 アドバイスが表示されます。
- resetNoRefresh
-
コマンドがリセット後にインデックスをリフレッシュするのに2秒以上かかる場合、 git-reset(1) に
--no-refresh
オプションを使用することを 検討するようにアドバイスします。 - resolveConflict
-
競合が原因で操作が実行できない場合に、 さまざまなコマンドによって表示されるアドバイス。
- sequencerInUse
-
シーケンサーコマンドがすでに進行中の場合に表示されるアドバイス。
- implicitIdentity
-
システムのユーザー名とドメイン名から 情報が推測される場合のID構成の設定方法に 関するアドバイス。
- detachedHead
-
git-switch(1) または git-checkout(1) を使用して HEADのデタッチ状態に移行し、 事後にローカルブランチを作成する方法を 指示したときに表示されるアドバイス。
- suggestDetachingHead
-
git-switch(1) が明示的な
--detach
オプション無しで HEAD の切り離し(detach)を拒否した場合に表示されるアドバイス。 - checkoutAmbiguousRemoteBranchName
-
git-checkout(1) と git-switch(1) の引数が、 明確な引数によらず リモート追跡ブランチがチェックアウトされる状況で、 複数のリモート上のリモート追跡ブランチに対して あいまいに解決される場合に表示されるアドバイス。 このアドバイスが出力される状況で、 特定のリモートをデフォルトで 使用するように設定する方法については、
checkout.defaultRemote
構成変数を参照してください。 - amWorkDir
-
git-am(1) がパッチファイルの適用に失敗した場合に パッチファイルの場所を示すアドバイス。
- rmHints
-
git-rm(1) の出力に失敗した場合、 現在の状態からどのように進めるかについての指示を表示します。
- addEmbeddedRepo
-
誤って、あるgitリポジトリを別のリポジトリ内に追加した 場合の対処方法に関するアドバイス。
- ignoredHook
-
フックが実行可能ファイルとして設定されていないために フックが無視された場合に表示されるアドバイス。
- waitingForEditor
-
Gitがユーザーからのエディタ入力を待機しているときは、 いつでも端末にメッセージを出力します。
- nestedTag
-
ユーザーがタグオブジェクトに再帰的にタグを付けようとした 場合に表示されるアドバイス。
- submoduleAlternateErrorStrategyDie
-
「die」に設定された submodule.alternateErrorStrategy オプションが 致命的なエラーを引き起こす場合に表示されるアドバイス。
- submodulesNotUpdated
-
git submodule update --init
が実行されなかったために失敗した サブモジュール・コマンドをユーザーが実行したときに表示されるアドバイス。 - addIgnoredFile
-
ユーザーが、無視されたファイルをインデックスに追加しようとした 場合に表示されるアドバイス。
- addEmptyPathspec
-
ユーザーがpathspecパラメーターを指定せずに addコマンドを実行した場合に表示されるアドバイス。
- updateSparsePath
-
git-add(1) または git-rm(1) のいずれかが、 現在のスパースチェックアウト外のインデックスエントリを 更新するように求められたときに表示されるアドバイス。
- diverging
-
早送り(fast-forward)できないときに表示されるアドバイス。
- worktreeAddOrphan
-
ユーザーが不正な参照(invalid reference)からワークツリーを作成しようとしたときに、 代わりに新しい孤立したブランチ(orphan branch)を作成する方法を説明するアドバイスが表示されます。
- core.fileMode
-
作業ツリー内のファイルの実行可能ビットを尊重するかどうかをGitに通知します。
一部のファイルシステムでは、実行可能としてマークされたファイルがチェックアウトされるか、実行可能ビットがオンになっている実行不可能なファイルをチェックアウトすると、実行可能ビットを失います。 git-clone(1) または git-init(1) は、ファイルシステムを調査して、実行可能ビットを正しく処理し、この変数が必要に応じて自動的に設定されるかどうかを確認します。
リポジトリはファイルモードを正しく処理するファイルシステム上にある可能性があり、この変数は作成時に「true」に設定されますが、後でファイルモードを失う別の環境からアクセスできるようになる可能性があります(たとえば、CIFSマウントを介したext4のエクスポート。CygwinがGit for WindowsまたはEclipseでリポジトリを作成た時など)。このような場合、この変数を「false」に設定する必要がある場合があります。 git-update-index(1) を参照してください。
(設定ファイルでcore.filemodeが指定されていない場合、)デフォルトはtrueです。
- core.hideDotFiles
-
(Windowsのみ)trueの場合、名前がドットで始まる、新しく作成されたディレクトリと新しく作成されたファイルを非表示としてマークします。
dotGitOnly
の場合、.git/
ディレクトリのみが非表示になり、ドットで始まる他のファイルは非表示になりません。デフォルトのモードはdotGitOnly
です。 - core.ignoreCase
-
APFS、HFS+、FAT、NTFSなどの大文字と小文字を区別しないファイルシステムでGitをより適切に機能させるためのさまざまな回避策を可能にする内部変数。たとえば、Gitが「Makefile」を予期しているときにディレクトリリストで「makefile」が見つかった場合、Git それは実際には同じファイルであると想定し、「Makefile」として記憶し続けます。
デフォルトはfalseですが、 git-clone(1) または git-init(1) は、リポジトリの作成時に必要に応じてcore.ignoreCaseを調査してtrueに設定します。
あなたのオペレーティングシステムとファイルシステムに関して、Gitは、この変数の適切な構成に依存しています。この値を変更すると、予期しない動作が発生する可能性があります。
- core.precomposeUnicode
-
このオプションは、GitのMacOS実装でのみ使用されます。 core.precomposeUnicode=true の場合、GitはMacOSによって行われたファイル名のUnicode分解(unicode decomposition)を元に戻します。これは、MacOSとLinuxまたはWindowsの間でリポジトリを共有する場合に便利です。 (Git for Windows 1.7.10以降、または Git under cygwin 1.7 が必要です)。 falseの場合、ファイル名はGitによって完全に透過的に処理されます。これは、古いバージョンのGitとの下位互換性があります。
- core.protectHFS
-
trueに設定されている場合、 HFS+ ファイルシステムで
.git
と同等と見なされるパスのチェックアウトを許可しないでください。デフォルトはMacOSではtrue
、それ以外の場合はfalse
です。 - core.protectNTFS
-
trueに設定されている場合、NTFSファイルシステムで問題を引き起こす可能性のあるパスのチェックアウトを許可しないでください。 例えば、 8.3 の「短い」名前と競合します。デフォルトは、Windowsでは「true」、それ以外の場合は「false」です。
- core.fsmonitor
-
true に設定すると、この作業ディレクトリのための組み込みファイル・システム・モニター・デーモンが有効になります(git-fsmonitor--daemon(1))。
フック・ベースのファイル・システム・モニター(hook-based file system monitors)と同様に、組み込みのファイル・システム・モニターは、多数のファイルを含む作業ディレクトリで Git インデックスを更新する必要がある Git コマンド (例:
git status
) を高速化できます。 組み込みのモニターにより、外部のサードパーティ ツールをインストールして維持する必要がなくなります。組み込みのファイル・システム・モニターは、現在のところ、サポートされているプラットフォームの限られたセットでのみ使用できます。 現在、これには Windows と MacOS が含まれます。
それ以外の場合、この変数には fsmonitorフック・コマンドの パス名が含まれます。
このフック・コマンドは、要求された日時以降に変更された可能性のあるすべてのファイルを識別するために使用されます。 この情報は、変更されていないファイルの不要なスキャンを回避することで git を高速化するために使用されます。
githooks(5) の「fsmonitor-watchman」セクションを参照してください。
注意: コマンド・ラインでとあるバージョンを使用し、 IDEツールで別のバージョンを使用するなど、Gitの複数のバージョンを同時に使用する場合、
core.fsmonitor
の定義が拡張され、フック・パス名に加えてブール値が許可されることに注意してください。 Git バージョン 2.35.1 以前はブール値を認識せず、true
またはfalse
の値を呼び出されるフック・パス名と見なします。 Git バージョン 2.26 〜 2.35.1 までは、デフォルトでプロトコルV2 をフックし、 fsmonitor 無し (フル スキャン) にフォールバックします。 2.26 より前のバージョンの Git は、デフォルトでプロトコルV1 をフックし、報告する変更がない(スキャンなし)と暗黙のうちに想定するため、ステータス・コマンドは不完全な結果を報告する場合があります。 このため、組み込みのファイル・システム・モニターを使用する前に、すべての Git バージョンをアップグレードすることをお勧めします。 - core.fsmonitorHookVersion
-
「fsmonitor」フックを呼び出すときに使用するプロトコル・バージョンを設定します。
現在、バージョン1と2があります。これが設定されていない場合、バージョン2が最初に試行され、失敗した場合はバージョン1が試行されます。 バージョン1は、入力としてtimpstampを使用して、それ以降に変更があったファイルを判別しますが、watchmanなどの一部のモニターでは、timestampを使用すると競合状態になります。バージョン2はopaque stringを使用しているため、モニターは競合状態なしで変更されたファイルを判別するために使用できるものを返すことができます。
- core.trustctime
-
falseの場合、インデックスと作業ツリー間のctimeの違いは無視されます。iノードの変更時刻がGitの外部の何か(ファイルシステムクローラーおよび一部のバックアップシステム)によって定期的に変更される場合に役立ちます。 git-update-index(1) を参照してください。デフォルトではtrueです。
- core.splitIndex
-
trueの場合、インデックスの分割インデックス機能が使用されます。 git-update-index(1) を参照してください。 デフォルトではfalseです。
- core.untrackedCache
-
インデックスの追跡されていないモノのキャッシュ機能をどうするかを決定します。この変数が設定されていない(unset)か、
keep
に設定されている場合、キャッシュが保持されます。true
に設定すると、自動的に追加されます。 また、false
に設定すると、自動的に削除されます。true
に設定する前に、mtimeがシステムで正しく機能していることを確認する必要があります。 git-update-index(1) を参照してください。 この設定をデフォルトでtrue
に設定するfeature.manyFiles
が有効になっていない限り、デフォルトはkeep
です。 - core.checkStat
-
core.checkStat が設定されていないか
default
に設定されている場合、Gitがファイルを調べてからファイルが変更されたかどうかを検出するために、stat構造体の多くのフィールドがチェックされます。この構成変数がminimal
に設定されている場合、mtimeとctimeの1秒未満の部分、ファイルの所有者のuidとgid、iノード番号(およびGitがそれを使用するようにコンパイルされている場合はデバイス番号も)はチェック対象から除外され、mtimeの2分の1の部分(およびcore.trustCtime
が設定されている場合はctime)とファイルサイズチェックのみがチェック対象として残ります。(JGitなど)一部のフィールドに使用可能な値を残さないGitの実装があります。これらのフィールドを比較から除外することにより、
minimal
モードは、同じリポジトリがこれらの他のシステムによって同時に使用される場合の相互運用性に役立つ可能性があります。 - core.quotePath
-
パスを出力するコマンド(例:
ls-files
、diff
)は、パス名を二重引用符で囲み("..."
)、Cが制御文字をエスケープするのと同じ方法でそれらの文字をバックスラッシュ(\
)でエスケープすることにより、パス名の「異常な」文字をクォートします(例: TABの場合は\t
、LFの場合は\n
、バックスラッシュの場合は\\
)、または0x80より大きい値のバイト(たとえば、UTF-8の "micro" の場合は8進数\302\265
)。この変数がfalseに設定されている場合、0x80を超えるバイトは「異常」とは見なされなくなります。この変数の設定に関係なく、二重引用符("
)、バックスラッシュ(\
)、および制御文字は常にエスケープされます。単純なスペース文字は「異常」とは見なされません。多くのコマンドは、-z
オプションを使用してパス名を完全にそのままで出力できます。デフォルト値はtrueです。 - core.eol
-
作業ディレクトリ内で、(
text
属性を設定するか、text=auto
とGitがコンテンツをテキストとして自動検出することにより)テキストとしてマークされたファイルが使用する行末タイプを設定します。 代替手段は、lf
とcrlf
と プラットフォームの生来の行末を使用するnative
があります。デフォルト値はnative
です。行末変換の詳細については、 gitattributes(5) を参照してください。注意:core.autocrlf
がtrue
またはinput
に設定されている場合、この値は無視されることに注意してください。 - core.safecrlf
-
trueの場合、行末変換がアクティブなときに
CRLF
の変換が可逆的かどうかをGitにチェックさせます。 Gitは、コマンドが作業ツリー内のファイルを直接または間接的に変更するかどうかを確認します。たとえば、あるファイルをコミットしてから同じファイルをチェックアウトすると、作業ツリーに元のファイルが生成されます。この操作がcore.autocrlf
の現在の設定に当てはまらない場合、Gitはそのファイルを拒否します。変数をwarn
に設定でき、その場合、Gitは不可逆的な変換についてのみ警告はしますが、操作を続行します。CRLF変換には、データが破損する可能性がわずかにあります。有効にすると、Gitはコミット時にCRLFをLFに変換し、チェックアウト時にLFをCRLFに変換します。コミット前にLFとCRLFが混在しているファイルは、Gitでは復元できません。リポジトリにLF行末のみが含まれるように行末を修正するのは、テキストファイルの場合は正しい操作です。しかし、誤ってテキストとして分類されたバイナリファイルの場合、変換によってデータが破損する可能性があります。
あなたがこのような破損を早期に認識した場合は、 .gitattributes で変換タイプを明示的に設定することで簡単に修正できます。コミットした直後は、作業ツリーに元のファイルが残っており、このファイルはまだ破損していません。 このファイルはバイナリファイルなのだからと、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に設定します。 この変数は「input」に設定できます。この場合、出力変換は実行されません。 - core.checkRoundtripEncoding
-
working-tree-encoding
属性で使用された場合に 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 を調査して必要に応じて 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はインデックスと作業ツリーの両方で同じように更新された追跡ファイルの「assume-unchanged」(無変更と仮定する)ビットを設定することにより、ファイルが変更されたかどうかを検出するための lstat() 呼び出しを回避します。
ファイルがGitの外部で変更される場合、ユーザーは変更されたファイルを明示的にステージングする必要があります(たとえば、 git-update-index(1) の「Examples」セクションを参照)。 Gitは通常、これらのファイルへの変更を検出しません。
これは、 CIFS/Microsoft Windows など、 lstat() 呼び出しが非常に遅いシステムで役立ちます。
false がデフォルトです。
- core.preferSymlinkRefs
-
HEADおよびその他のシンボリック参照ファイルのデフォルトの「symref」形式の代わりに、シンボリックリンクを使用します。これは、HEADがシンボリックリンクであることを期待する古いスクリプトを操作するために必要になる場合があります。
- core.alternateRefsCommand
-
alternateから利用可能な履歴のヒントをアドバタイズする場合は、 git-for-each-ref(1) の代わりに、シェルを使用して指定されたコマンドを実行します。最初の引数は、alternateの絶対パスです。出力には、1行に1つの16進オブジェクトIDが含まれている必要があります(つまり、
git for-each-ref --format='%(objectname)'
によって生成されたものと同じある必要があります)。注意: 通常、 あなたは
git for-each-ref
をconfig値に直接入れることはできません。これは、リポジトリパスを引数として受け取らないためです(ただし、あなたは上記のコマンドをシェルスクリプトでラップすることはできます)。 - core.alternateRefsPrefixes
-
alternateからの参照を一覧表示する場合は、指定のプレフィックスで始まる参照のみを一覧表示します。プレフィックスは git-for-each-ref(1) への引数として指定されたかのようにマッチングします。複数のプレフィックスを一覧表示するには、それらを空白で区切ります。
core.alternateRefsCommand
が設定されている場合、core.alternateRefsPrefixes
を設定しても効果ありません。 - core.bare
-
trueの場合、このリポジトリは「ベア」(bare;ベアリポジトリ)であると見なされ、作業ディレクトリは関連付けられていません。この場合、 git-add(1) や git-merge(1) など、作業ディレクトリを必要とする多くのコマンドが無効になります。
この設定は、リポジトリの作成時に git-clone(1) または git-init(1) によって自動的に推測されます。 デフォルトでは、
/.git
で終わるリポジトリはベアではないと見なされ(bare = false)、他のすべてのリポジトリはベアであると見なされます(bare = true)。 - core.worktree
-
作業ツリーのルートへのパスを設定します。
GIT_COMMON_DIR
環境変数が設定されている場合、 core.worktree は無視され、作業ツリーのルートを決定するために使用されません。core.worktree はGIT_WORK_TREE
環境変数と--work-tree
コマンドラインオプションで上書きできます。値は、絶対パスまたは.git
ディレクトリへの相対パスにすることができます。これは、--git-dir
または GIT_DIR 環境変数で指定されるか、--git-dir
や GIT_DIR 環境変数の指定が無い場合は自動的に検出されます。--work-tree
と GIT_WORK_TREE と core.worktree のいずれも指定されていない場合、現在の作業ディレクトリが作業ツリーの最上位と見なされます。注意: この変数は、ディレクトリの
.git` サブディレクトリ内の構成ファイルに設定されている場合でも適用され、その値は前者のディレクトリとは異なることに注意してください(たとえば、 `/path/to/
ディレクトリの.git
サブディレクトリ内の構成ファイル/path/to/.git/config
内の core.worktree が/different/path
に設定されていたとする)、これはおそらく設定ミスです。あなたが/path/to
ディレクトリでGitコマンドを実行すると、引き続き/different/path
が作業ツリーのルートとして使用され、あなたが何をしているのか分かっている(たとえば、リポジトリの通常の作業ツリーとは異なる場所に同じインデックスの読み取り専用スナップショットを作成している)のでない限り混乱を招く可能性があります。 - core.logAllRefUpdates
-
reflogを有効にします。新旧のSHA-1の追加や、日付/時刻・理由の更新による、refである <ref> の更新は、ファイル
$GIT_DIR/logs/<ref>
が存在する場合のみ、そのファイルにロギングされます。この構成変数がtrue
に設定されている場合、欠落している$GIT_DIR/logs/<ref>
ファイルがブランチヘッド(つまり、refs/heads/
下)、リモートref(つまり、 refs/ 下)、note refs(つまり、refs/notes/
下)、およびシンボリックrefHEAD
。always`に設定されている場合、欠落しているreflogは、 `refs/
下のすべてのrefに対して自動的に作成されます。この情報を使用して、「2日前」(2 days ago)にブランチの先端であったコミットを判別できます。
この値は、作業ディレクトリが関連付けられているリポジトリではデフォルトでtrueになり、ベアリポジトリではデフォルトでfalseになります。
- core.repositoryFormatVersion
-
リポジトリの形式とレイアウトのバージョンを識別する内部変数。
- core.sharedRepository
-
group
(またはtrue
)の場合、リポジトリはグループ内の複数のユーザー間で共有可能になります(すべてのファイルとオブジェクトがグループ書き込み可能であることを確認してください)。all
(またはworld
またはeverybody
)の場合、リポジトリはグループ共有可能であることに加えて、すべてのユーザーが読み取り可能になります。umask
(またはfalse
)の場合、Gitは umask(2) によって報告された権限を使用します。0xxx
(0xxx
は8進数)の場合、リポジトリ内のファイルはこのモード値になります。「0xxx」はユーザーのumask値をオーバーライドします(他のオプションはユーザーのumask値の要求された部分のみをオーバーライドします)。例:0660
は、所有者とグループがリポジトリを 読み取り/書き込み 可能にしますが、他のユーザーはアクセスできません(umaskが0022
などでない限り、group
と同等です)。0640
は、グループで読み取り可能ですが、グループで書き込み可能ではないリポジトリです。 git-init(1) を参照してください。 デフォルトでは False です。 - core.warnAmbiguousRefs
-
trueの場合、渡したref名があいまいでリポジトリ内の複数のrefと一致する可能性がある場合、Gitは警告を表示します。 デフォルトではtrue。
- 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
-
1回のマッピング操作でメモリにマップするパックファイルのバイト数。ウィンドウサイズを大きくすると、システムが少数の大きなパックファイルをより迅速に処理できるようになる場合があります。ウィンドウサイズを小さくすると、オペレーティングシステムのメモリマネージャへの呼び出しが増えるため、パフォーマンスに悪影響を及ぼしますが、多数の大きなパックファイルにアクセスする場合のパフォーマンスが向上する可能性があります。
コンパイル時にNO_MMAPが設定されている場合、デフォルトは1Mバイトです。それ以外の場合、32ビットプラットフォームでは32Mバイト、64ビットプラットフォームでは1Gバイトです。これは、すべてのユーザー/オペレーティングシステムにとって妥当なはずです。おそらくあなたはこの値を調整する必要はありません。
k
またはm
またはg
の一般的な単位接尾辞がサポートされています。 - core.packedGitLimit
-
パックファイルからメモリに同時にマップする最大バイト数。Gitが操作を完了するために一度にこれ以上のバイトにアクセスする必要がある場合、Gitは既存の領域のマップを解除して、プロセス内の仮想アドレス空間を再利用します。
デフォルトは、32ビットプラットフォームでは256Mバイト、64ビットプラットフォームでは32Tバイト(事実上無制限)です。これは、超巨大プロジェクトを除いて、すべてのユーザー/オペレーティングシステムにとって妥当なはずです。あなたは、おそらくこの値を調整する必要はありません。
k
またはm
またはg
の一般的な単位接尾辞がサポートされています。 - core.deltaBaseCacheLimit
-
複数の削除されたオブジェクトによって参照される可能性のあるベースオブジェクトをキャッシュするために予約するスレッドあたりの最大バイト数。解凍(decompress)されたベースオブジェクト全体をキャッシュに保存することで、Gitは頻繁に使用されるベースオブジェクトを何度もアンパックおよび解凍することを回避できます。
デフォルトは、すべてのプラットフォームで96Mバイトです。これは、超巨大プロジェクトを除いて、すべてのユーザー/オペレーティングシステムにとって妥当なはずです。あなたは、おそらくこの値を調整する必要はありません。
k
またはm
またはg
の一般的な単位接尾辞がサポートされています。 - core.bigFileThreshold
-
「大きい」(big)と見なされるファイルのサイズは、以下で説明するように、多数の git コマンドの動作と、そのようなファイルがリポジトリ内に格納される方法を変更します。 デフォルトは 512 MiB です。
k
またはm
またはg
の一般的な単位サフィックスがサポートされています。構成された制限を超えるファイルは以下のようになります:
-
デルタ圧縮を試行せずに、圧縮された状態でパックファイルに保存されます。
デフォルトの制限は、主にこのユースケースを念頭に置いて設定されています。 これにより、ほとんどのプロジェクトのソース・コードとその他のテキスト・ファイルはデルタ圧縮されますが、より大きなバイナリ・メディア・ファイルは圧縮されません。
デルタ圧縮なしで大きなファイルを保存すると、ディスク使用量が増えるというわずかな犠牲を払って、過度のメモリ使用量を回避できます。
-
「binary」とラベル付けされているかのように扱われます(gitattributes(5) 参照)。 例えば git-log(1) と git-diff(1) は、この制限を超えるファイルのdiffを計算しません。
-
通常、書き込み時にストリーミングされます。これにより、過度のメモリ使用が回避されますが、一定のオーバーヘッドが発生します。 これを利用するコマンドには、 git-archive(1) や git-fast-import(1) や git-index-pack(1) や git-unpack-objects(1) や git-fsck(1) などがあります。
-
- core.excludesFile
-
.gitignore
(ディレクトリごと)と.git/info/exclude
に加えて、追跡されることを意図されていないパスを記述するパターンを含むファイルへのパス名を指定します。 デフォルトは$XDG_CONFIG_HOME/git/ignore
です。$XDG_CONFIG_HOME
が設定されていないか空の場合、代わりに$HOME/.config/git/ignore
が使用されます。 gitignore(5) を参照してください。 - core.askPass
-
パスワードを対話的に要求する一部のコマンド(svnやhttpインターフェイスなど)は、この変数の値を介して指定された外部プログラムを使用するように指示できます。
GIT_ASKPASS
環境変数でオーバーライドできます。設定されていない場合は、SSH_ASKPASS
環境変数の値にフォールバックするか、それが失敗した場合は、単純なパスワードプロンプトにフォールバックします。外部プログラムには、コマンドライン引数として適切なプロンプトが与えられ、その標準出力にパスワードを書き出す事になっています。 - 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はそのディレクトリであなたのフックを見つけようとします。例えば$GIT_DIR/hooks/pre-receive
の代わりに/etc/git/hooks/pre-receive
です。パスは絶対パスでも相対パスでもかまいません。相対パスは、フックが実行されているディレクトリを基準にしたものと見なされます(githooks(5) の「DESCRIPTION」セクションを参照)。
この設定変数は、あなたのGitフックをリポジトリごとに設定するのではなく一元的に設定したい場合や、デフォルトのフックを変更した
init.templateDir
に代わるより柔軟で一元的な設定として有用です。 - core.editor
-
エディタを起動してメッセージを編集できる
commit
やtag
などのコマンドは、この変数が設定されているときにこの変数の値を使用し、環境変数GIT_EDITOR
は設定されていません。 git-var(1) を参照してください。 - core.commentChar
-
メッセージを編集できる
commit
やtag
などのコマンドは、この文字で始まるコメント行を考慮し、エディタから戻った後にそれらを削除します(デフォルトは#
)。auto
に設定すると、git-commit
は、既存のコミットメッセージのどの行の先頭文字でもない文字を選択します。 - core.filesRefLockTimeout
-
個々の参照をロックしようとしたときに再試行する時間の長さ(ミリ秒単位)。値0は、まったく再試行しないことを意味します。 -1 は無期限に試すことを意味します。 デフォルトは100です(つまり、100ミリ秒再試行します)。
- core.packedRefsTimeout
-
packed-refs
ファイルをロックしようとしたときに再試行する時間の長さ(ミリ秒単位)。値0は、まったく再試行しないことを意味します。-1は無期限に試すことを意味します。デフォルトは1000です(つまり、1秒間再試行します)。 - core.pager
-
Gitコマンドで使用するテキストビューア(
less
など)。値はシェルによって解釈されることを意図しています。 優先順位は、$GIT_PAGER
環境変数、core.pager
構成、$PAGER
、そしてコンパイル時に選択されたデフォルト(通常はless
)です。LESS
環境変数が設定されていない(unset)場合、GitはそれをFRX
に設定(set)します(LESS
環境変数が設定されている場合は、Gitはそれをまったく変更しません)。Gitのデフォルト設定であるLESS
を選択的にオーバーライドする場合は、core.pager
を、例えばless -S
と設定できます。これはGitによってシェルに渡され、Gitは最後のコマンドをLESS=FRX less -S
に変換します。環境変数ではS
オプションを設定しませんが、コマンドラインでは設定し、長い行を切り捨てるように指示します。同様に、core.pager
をless -+F
に設定すると、環境変数によって指定されたF`オプションがコマンドラインによって非アクティブになり、 `less
の「1画面の場合は終了」動作が非アクティブになります。特定のGitコマンドに対していくつかのフラグを特に指定してアクティブにすることができます。たとえば、pager.blame
をless -S
に設定すると、git blame
でのみページャーで行の切り捨てが有効になります。同様に、
LV
環境変数が設定されていない場合、Gitはそれを-c
に設定します。この設定を上書きするには、LV
を別の値でエクスポートするか、core.pager
をlv +c
に設定します。 - core.whitespace
-
注意すべき一般的な空白(whitespace)の問題のコンマ(
,
)区切りのリスト。gitdiff
はcolor.diff.whitespace
を使用してそれらを強調表示し、git apply --whitespace = error
はそれらをエラーと見なします。 接頭辞-
を付けて、それらのいずれかを無効にすることができます(例:-trailing-space
):-
blank-at-eol
は、行末の末尾の空白をエラーとして扱います(デフォルトで有効になっています)。 -
space-before-tab
は、行の最初のインデント部分のタブ文字の直前に表示されるスペース文字をエラーとして扱います(デフォルトで有効になっています)。 -
indent-with-non-tab
は、同等のタブではなくスペース文字でインデントされた行をエラーとして扱います(デフォルトでは有効になっていません)。 -
tab-in-indent
は、行の最初のインデント部分にあるタブ文字をエラーとして扱います(デフォルトでは有効になっていません)。 -
blank-at-eof
は、ファイルの最後に追加された空白行をエラーとして扱います(デフォルトで有効になっています)。 -
trailing-space
は、` blank-at-eol` とblank-at-eof
の両方をカバーする省略形です。 -
cr-at-eol
は、行末のキャリッジリターンをラインターミネータの一部として扱います。つまり、そのようなキャリッジリターンの前の文字が空白(a whitespace)でない場合、trailing-space
はトリガーされません(デフォルトでは有効になっていません)。 -
tabwidth=<n>
は、タブが占める文字数を示します。 これは、indent-with-non-tab
と、 Gitがtab-in-indent
エラーを修正する場合に関連します。デフォルトのタブ幅は8です。許可される値は1〜63です。
-
- core.fsync
-
作成または変更時に core.fsyncMethod を介して強化する必要があるリポジトリのコンポーネントのコンマ区切りリスト。 コンポーネントの前に
-
を付けることで、コンポーネントの堅牢化を無効にすることができます。 堅牢化されていないアイテムは、不正なシステム・シャットダウンが発生した場合に失われる可能性があります。 特別な要件がない限り、このオプションを空のままにするか、committed
またはadded
またはall
のいずれかを選択することをお勧めします。この構成が検出されると、一連のコンポーネントがプラットフォームのデフォルト値で開始され、無効なコンポーネントが削除され、追加のコンポーネントが追加されます。
none
は、プラットフォームのデフォルトが無視されるように状態をリセットします。空の文字列は、 fsync 構成をプラットフォームのデフォルトにリセットします。 ほとんどのプラットフォームのデフォルトは
core.fsync=committed,-loose-object
と同等で、パフォーマンスは良好ですが、システムが正常にシャットダウンされなかった場合に最近の作業が失われるリスクがあります。-
none
は、fsync されたコンポーネントのセットをクリアします。 -
loose-object
は、リポジトリに追加されたオブジェクトを緩いオブジェクト形式に堅牢化します。 -
pack
は、リポジトリに追加されたオブジェクトをパックファイル形式に堅牢化します。 -
pack-metadata
は、パックファイルのビットマップとインデックスに堅牢化します。 -
commit-graph
は、コミット・グラフ・ファイルを堅牢化します。 -
index
は、変更時にインデックスに堅牢化します。 -
objects
は、loose-object,pack
と同等の集約オプションです。 -
reference` は、リポジトリで変更された参照に堅牢化します。
-
derived-metadata
は、pack-metadata,commit-graph
と同等の集約オプションです。 -
committed
は、現在のところobjects
と同等の集約オプションです。 このモードでは、git commit
または同様のコマンドでリポジトリにコミットされた作業が確実に堅牢化されるようにして、パフォーマンスがいくらか犠牲になります。 -
added
は、現在のところcommitted,index
と同等の集約オプションです。 このモードでは、git add
などのコマンドや同様の操作の結果が確実に堅牢化されるようにして、パフォーマンスが犠牲が追加されます。 -
all
は、上記のすべての個々のコンポーネントをsyncする集約オプションです。
-
- core.fsyncMethod
-
fsync および関連するプリミティブを使用してリポジトリ・データを堅牢化するために Git が使用する戦略を示す値。
-
fsync
は、 fsync() システム・コール、または、当該プラットフォームで fsync() システム・コールと同等のものを使用します。 -
writeout-only
はページ・キャッシュの書き戻し(writeback)要求を発行しますが、ファイル・システムとストレージ・ハードウェアによっては、システム・クラッシュが発生した場合にリポジトリに追加されたデータが保持されない場合があります。 これは macOS のデフォルト・モードです。 -
batch
は、書き込み専用(writeout-only)フラッシュを使用してディスク・ライトバック・キャッシュに複数の更新をステージングするモードを有効にし、その後、操作の最後にディスク・キャッシュ・フラッシュをトリガーするためにダミー・ファイル 1 つによっての完全な fsync を実行します。現在、
batch
モードは緩いオブジェクト・ファイルにのみ適用されます。 他のリポジトリ・データは、fsync
が指定されたかのように永続化されます。 このモードは、 macOS では HFS+ または APFS ファイルシステムに格納されたリポジトリに対して、 Windows では NTFS または ReFS ファイルシステムに格納されたリポジトリに対してはfsync
と同じくらい安全であると予想されます。
-
- core.fsyncObjectFiles
-
このブール値は、オブジェクトファイルを書き込むときに
fsync()
を有効にします。 この設定は非推奨です。 代わりに core.fsync を使用してください。この設定は、 緩いオブジェクト形式で Git リポジトリに追加されたデータに影響します。 true に設定すると、Git は fsync または同様のシステム・コールを発行してキャッシュをフラッシュし、不正なシステム・シャットダウンに直面しても緩いオブジェクトの一貫性が維持されるようにします。
- core.preloadIndex
-
git diff
などの操作のために並列インデックスプリロードを有効にするこれにより、特にキャッシュセマンティクスが弱く、IOレイテンシが比較的高いNFSなどのファイルシステムで、「git diff」や「git status」などの操作を高速化できます。有効にすると、Gitはファイルシステムデータとのインデックス比較を並行して実行し、重複する入出力を許可します。デフォルトはtrueです。
- core.unsetenvvars
-
Windowsのみ: 他のプロセスを生成する前に設定を解除する必要がある環境変数の名前のコンマ(
,
)区切りのリスト。Git for Windowsが独自のPerlインタープリターの使用を主張しているという事実を説明するために、デフォルトはPERL5LIB
です。 - core.restrictinheritedhandles
-
Windowsのみ: 生成されたプロセスが標準のファイルハンドル(
stdin
とstdout
とstderr
)のみを継承するか、すべてのハンドルを継承するかをオーバーライドします。auto
またはtrue
またはfalse
にすることができます。デフォルトはauto
で、これはWindows7以降ではtrue
を意味し、古いバージョンのWindowsではfalse
を意味します。 - core.createObject
-
これを
link
に設定できます。この場合、ハードリンク後のソース削除を、オブジェクトの作成が既存のオブジェクトが上書しないことをチェックするために使用します。一部のファイルシステム/オペレーティングシステムの組み合わせでは、これは信頼できませんので、この構成設定を
rename
に設定します。ただし、これにより、既存のオブジェクトファイルが上書きされないようにするチェックが削除されます。 - core.notesRef
-
コミットメッセージを表示するときは、指定されたrefに保存されている note も表示します。refは完全に修飾されている必要があります。指定されたrefが存在しない場合、それはエラーではありませんが、noteを印刷してはならないことを意味します。
この設定のデフォルトは「refs/notes/commits」であり、
GIT_NOTES_REF
環境変数でオーバーライドできます。 git-notes(1) を参照してください。 - core.commitGraph
-
trueの場合、gitはcommit-graphファイル(存在する場合)を読み取り、コミットのグラフ構造をパースします。デフォルトはtrueです。詳細については、 git-commit-graph(1) を参照してください。
- core.useReplaceRefs
-
false
に設定すると、コマンドラインで--no-replace-objects
オプションが指定されたかのように振る舞います。詳細については git(1) と git-replace(1) を参照してください。 - core.multiPackIndex
-
multi-pack-index ファイルを使用して、単一のインデックスを使用して複数のパックファイルを追跡します。詳細については git-multi-pack-index(1) を参照してください。デフォルトはtrueです。
- core.sparseCheckout
-
「スパースチェックアウト」(sparse checkout)機能を有効にします。 詳細については、 git-sparse-checkout(1) を参照してください。
- core.sparseCheckoutCone
-
スパースチェックアウト機能の「コーンモード」(cone mode)を有効にします。スパースチェックアウトファイルに含まれるパターンのセットが限られている場合、このモードはパフォーマンスに大きな利点をもたらします。 この変数を
false
に設定することで、より柔軟なパターンを指定できるように「非コーンモード」(non-cone mode)を要求できます。 詳細については git-sparse-checkout(1) を参照してください。 - core.abbrev
-
オブジェクト名の省略形の長さを設定します。指定されていないか「auto」に設定されている場合、リポジトリ内のパックされたオブジェクトのおおよその数に基づいて適切な値が計算されます。それは、省略されたオブジェクト名がしばらくの間(some time)一意であるのに十分な長さです。「no」に設定すると、省略形は作成されず、オブジェクト名は完全な長さで表示されます。 最小の長さは4です。
- add.ignoreErrors
- add.ignore-errors (非推奨)
-
インデックスエラーのために一部のファイルを追加できない場合にファイルの追加を続行するように
git add
に指示します。 git-add(1) の--ignore-errors
オプションと同等です。add.ignore-errors
は、構成変数の通常の命名規則に従わないため、非推奨になりました。 - add.interactive.useBuiltin
-
未使用の構成変数。 Git バージョン v2.25.0 〜 v2.36.0 で git-add(1) の対話モード(interactive mode)の(Perlバージョンではなく)組み込みバージョンを有効にするために使用され、 その後 Git バージョン v2.37.0 〜 v2.39.0 では組み込みバージョン有効がデフォルトになっていました。
- alias.*
-
git(1) コマンドラッパーのコマンドエイリアス。例えば、
alias.last = cat-file commit HEAD
定義後、git last
の呼び出しはgit cat-file commit HEAD
と同等です。スクリプトの使用に関する混乱や問題を回避するために、既存のGitコマンドを非表示にするエイリアスは無視されます。 引数はスペースで分割され、通常のシェルのクォートとエスケープがサポートされています。 引用符のペアまたはバックスラッシュ(\
)を使用して、それらをクォートすることができます。エイリアスの最初の単語は必ずしもコマンドである必要はないことに注意してください。 これは、
git
の呼び出しに渡されるコマンドラインオプションにすることができます。 特に、これは、-c
を使用して1回限りの構成で渡す場合、または-p
を使用して強制的にページネーションを行う場合に役立ちます。 たとえば、loud-rebase = -c commit.verbose=true rebase
は、git loud-rebase
の実行がgit -c commit.verbose=true rebase
と同等になるように定義できます。 また、ps = -p status
は便利なエイリアスで、git ps
はgit status
の出力をページ分割して出力します。エイリアス展開の前に感嘆符(
!
)が付いている場合は、シェルコマンドとして扱われます。 たとえば、alias.new = !gitk --all --not ORIG_HEAD
を定義すると、git new
の呼び出しは、シェルコマンドgitk --all --not ORIG_HEAD
を実行するのと同じです。 シェルコマンドは、リポジトリの最上位ディレクトリから実行されることに注意してください。これは、必ずしも現在のディレクトリであるとは限りません。GIT_PREFIX
は、元のカレントディレクトリからgit rev-parse --show-prefix
を実行したときに返される値が設定されます。 git-rev-parse(1) を参照してください。 - am.keepcr
-
trueの場合、
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に設定すると、この設定は、パッチが適用される予定のブロブのIDを記録し、それらのブロブをローカルで使用できる場合に、3方向マージにフォールバックするようにgit am
に指示します(コマンドラインから--3way
オプションを指定するのと同じです)。 デフォルトはfalse
です。 git-am(1)を参照してください。 - apply.ignoreWhitespace
-
change
に設定すると、--ignore-space-change
オプションと同じように、空白の変更を無視するようにgit apply
に指示します。no
,none
,never
,false
のいずれかに設定すると、すべての空白の違いを尊重するようにgit apply
に指示されます。 git-apply(1) を参照してください。 - apply.whitespace
-
--whitespace
オプションと同じ方法で、git apply
に空白の処理方法を指示します。 git-apply(1) を参照してください。 - blame.blankBoundary
-
git-blame(1)で境界コミット(boundary commits)の空白コミットオブジェクト名を表示します。このオプションのデフォルトはfalseです。
- blame.coloring
-
これにより、blame出力に適用される配色が決まります。 これは、
repeatedLines
またはhighlightRecent
またはデフォルトのnone
にすることができます。 - blame.date
-
git-blame(1) で日付を出力するために使用される形式を指定します。 設定を解除すると、iso形式が使用されます。 サポートされている値については、 git-log(1) の
--date
オプションの説明を参照してください。 - blame.showEmail
-
git-blame(1) で、作者名(author)の代わりに作者の電子メールアドレス(author email)を表示します。 このオプションのデフォルトはfalseです。
- blame.showRoot
-
git-blame(1) ではルートコミットを境界として扱わないでください。 このオプションのデフォルトはfalseです。
- blame.ignoreRevsFile
-
git-blame(1) で、ファイルにリストされているリビジョン(1行に1つの省略されていないオブジェクト名)を無視します。
#
で始まる空白とコメントは無視されます。 このオプションは複数回繰り返すことができます。 空のファイル名は、無視されたリビジョンのリストをリセットします。 このオプションは、コマンドラインオプション--ignore-revs-file
の前に処理されます。 - blame.markUnblamableLines
-
git-blame(1)の出力で
*
を使用して、別のコミットに帰することができなかった、無視されたリビジョンによって変更された行をマークします。 - blame.markIgnoredLines
-
git-blame(1)の出力で、別のコミットに起因する無視されたリビジョンによって変更された行を
?
でマークします。 - branch.autoSetupMerge
-
git-pull(1) が開始点ブランチから適切にマージされるように、
git branch
やgit switch
やgit checkout
に新しいブランチを設定するように指示します。 このオプションが設定されていない場合でも、この動作は、--track
や--no-track
オプションを使用してブランチごとに選択できることに注意してください。 有効な設定は次のとおりです:false
— 自動セットアップは行われません。true
— 開始点がリモート追跡ブランチの場合、自動セットアップが実行されます。always
— 自動セットアップは、開始点がローカルブランチまたはリモート追跡ブランチのいずれかである場合に実行されます。 このオプションのデフォルトはtrueです。inherit
— 開始点に追跡構成(tracking configuration)がある場合、それは新しいブランチにコピーされます。simple
— 自動セットアップは、開始点がリモート追跡ブランチであり、新しいブランチがリモート・ブランチと同じ名前を持つ場合にのみ実行されます。 このオプションのデフォルトは true です。 - branch.autoSetupRebase
-
別のブランチを追跡する
git branch
またはgit switch
またはgit checkout
を使用して新しいブランチが作成されると、この変数はGitにマージではなくリベースするプルを設定するように指示します(branch.<name>.rebase
参照)。never
の場合、リベースが自動的にtrueに設定されることはありません。local
の場合、他のローカルブランチの追跡されたブランチに対してリベースがtrueに設定されます。remote
の場合、リモート追跡ブランチの追跡されたブランチに対してリベースがtrueに設定されます。always
の場合、リベースはすべての追跡ブランチに対してtrueに設定されます。 別のブランチを追跡するためにブランチを設定する方法の詳細については、branch.autoSetupMerge
を参照してください。 このオプションのデフォルトはnever
です。 - branch.sort
-
この変数は、 git-branch(1) によって表示されるときのブランチの並べ替え順序を制御します。
--sort=<value>
オプションが指定されていない場合、この変数の値がデフォルトとして使用されます。 有効な値については、 git-for-each-ref(1) のfield namesを参照してください。 - branch.<name>.remote
-
ブランチ<name>にいる場合、フェッチ元/プッシュ先 のremoteを
git fetch
とgit push
に通知します。 プッシュ先のremoteは、 (全ブランチ用の)remote.pushDefault
でオーバーライドできます。 現在のブランチの場合、プッシュ先のremoteは、branch.<name>.pushRemote
によってさらにオーバーライドされる可能性があります。 remoteが構成されていない場合、または、どのブランチにも属しておらずリポジトリに複数のremoteが定義されている場合、フェッチの場合はorigin
に、プッシュの場合はremote.pushDefault
にデフォルト設定されます。 さらに、.
(ピリオド)は現在のローカルリポジトリ(ドットリポジトリ)です。下記branch.<name>.merge
の最後の注意を参照してください。 - branch.<name>.pushRemote
-
ブランチ<name>にいる場合、プッシュするための
branch.<name>.remote
をオーバーライドします。 また、ブランチ<name>からプッシュするためのremote.pushDefault
をオーバーライドします。 ある場所(あなたのアップストリームなど)から別の場所(独自の公開リポジトリなど)にプッシュする場合は、remote.pushDefault
を設定して、すべてのブランチにプッシュするリモートを指定し、そして、このオプションを使用して 特定のブランチに対してオーバーライドします。 - branch.<name>.merge
-
branch.<name>.remote とともに、指定されたブランチのアップストリームブランチを定義します。 マージするブランチを
git fetch
/git pull
/git rebase
に通知し、git push
にも影響を与える可能性があります(push.default参照)。 ブランチ<name>にいる場合、FETCH_HEADでマージするためにマークされるデフォルトのrefspecをgit fetch
に指示します。 値はrefspecのリモート部分のように処理され、branch.<name>.remote ` で指定されたリモートからフェッチされたrefと一致する必要があります。 マージ情報は、マージのためにデフォルトのブランチを検索するために `git pull
(最初にgit fetch
を呼び出します)によって使用されます。 このオプションがない場合、git pull
はデフォルトで、フェッチされた最初のrefspecをマージします。 octopusマージを取得するには、複数値を指定します。 あなたがローカルリポジトリ内の別のブランチから<name>にマージされるようにgit pull
を設定したい場合は、branch.<name>.mergeが目的をブランチを指すようにして、そして、 branch.<name>.remote に相対パス設定.
(ピリオド)を使用できます。 - branch.<name>.mergeOptions
-
ブランチ<name>にマージするためのデフォルトオプションを設定します。 構文とサポートされているオプションは git-merge(1) のものと同じですが、空白文字を含むオプション値は現在サポートされていません。
- branch.<name>.rebase
-
trueの場合、
git pull
の実行時にデフォルトのリモートからデフォルトのブランチをマージするのではなく、フェッチされたブランチの上にブランチ<name>をリベースします。 ブランチ固有ではない方法でこれを行うには、pull.rebase
を参照してください。merges
(または単にm
) の場合、--rebase-merges
オプションをgit rebase
に渡して、ローカル・マージ・コミットがリベースに含まれるようにします (詳細については git-rebase(1) を参照してください)。値が
interactive
(または単にi
)の場合、リベースは対話モードで実行されます。注意: これはおそらく危険な操作です。 あなたが影響を理解していない限り、使用しないでください (詳細については、 git-rebase(1) を参照してください)。
- branch.<name>.description
-
ブランチの説明は、
git branch --edit-description
で編集できます。 ブランチの説明は、format-patchのカバーレターまたはrequest-pullの概要に自動的に追加されます。 - browser.<tool>.cmd
-
指定したブラウザ(<tool>)を起動するコマンドを指定してください。 指定されたコマンドは、引数として渡されたURLを使用してシェルで評価されます。 (git-web--browse(1) を参照してください。)
- browser.<tool>.path
-
HTMLヘルプ(git-help(1) の
-w
オプション参照) または gitwebの作業リポジトリ(git-instaweb(1) 参照) をブラウズするために使用される可能性のある指定のツール(<tool>)のパス(path)をオーバーライドします。 - bundle.*
-
bundle.*
キーは、git clone --bundle-uri
オプションで見つかったバンドル・リスト・ファイルに現れる場合があります。 これらのキーは現在、 リポジトリ構成ファイル(repository config file)に配置されても効果はありませんが、 将来的には変更される予定です。 詳細については、 the bundle URI design document を参照してください。 - bundle.version
-
この整数値は、 バンドル・リストで使用されるバンドル・リスト形式のバージョンを通知します。 現在、受け入れられる値は
1
のみです。 - bundle.mode
-
この文字列値は、
all
かany
のどちらかである必要があります。 この値は、 バンドル情報を完全に理解してバンドル解除(unbundle)するにはアドバタイズされたすべてのバンドルが必要か(all
)、 あるいはリストされたバンドル URI のいずれか 1 つで十分であるか(any
)を示します。 - bundle.heuristic
-
この文字列値のキーが存在する場合、 バンドル・リストは 増分
git fetch
コマンド(incrementalgit fetch
commands)で適切に動作するように設計されています。 ヒューリスティック(heuristic)とは、 クライアントがダウンロードする必要があるバンドルのサブセットを決定するのに役立つ追加のキーがバンドルごとに利用可能であることを示します。 現在理解できる唯一の値はcreationToken
です。 - bundle.<id>.*
-
bundle.<id>.*
キーはバンドル・リスト内の単一の項目を記述するために使用され、 識別目的で<id>
の下にグループ化されます。 - bundle.<id>.uri
-
この文字列値は、 Git がこの
<id>
のコンテンツにアクセスできる URI を定義します。 この URI はバンドル・ファイルまたは別のバンドル・リストである可能性があります。 - checkout.defaultRemote
-
git checkout <something>
またはgit switch <something>
を実行し、リモートが1つしかない場合、origin/<something>
のチェックアウトと追跡に暗黙的にフォールバックする可能性があります。<something>
参照を持つリモートが複数あるとすぐに動作しなくなります。 この設定により、曖昧性解消に関して常に勝利させる優先リモートの名前を設定できます。 典型的なユースケースは、これをorigin
に設定することです。現在、これは git-switch(1) と git-checkout(1) によって、
git checkout <something>
やgit switch <something>
が別のリモート上の<something>
ブランチをチェックアウトするときに使われています。また git-worktree(1) はgit worktree add
がリモートブランチを参照しているときに使われています。 この設定は、将来、他のチェックアウトのようなコマンドまたは機能に使用される可能性があります。 - checkout.guess
-
git checkout
とgit switch
の、--guess
または--no-guess
オプションのデフォルト値を提供します。 git-switch(1) および git-checkout(1) を参照してください。 - checkout.workers
-
作業ツリーを更新するときに使用する並列ワーカーの数。デフォルトは1、つまり順次実行です。 1未満の値に設定すると、Gitは使用可能な論理コアの数と同じ数のワーカーを使用します。 この設定と
checkout.thresholdForParallelism
は、チェックアウトを実行するすべてのコマンドに影響します。 例えば、 checkout, clone, reset, sparse-checkout, などです。注意: 並列チェックアウトは通常、SSDまたはNFS上にあるリポジトリのパフォーマンスを向上させます。 回転するディスクやコアの数が少ないマシン上のリポジトリの場合、デフォルトのシーケンシャルチェックアウトの方がパフォーマンスが向上することがよくあります。 リポジトリのサイズと圧縮レベルも、並列バージョンのパフォーマンスに影響を与える可能性があります。
- checkout.thresholdForParallelism
-
少数のファイルで並列チェックアウトを実行する場合、サブプロセスの生成とプロセス間通信のコストが並列化のメリットを上回る可能性があります。 この設定により、並列チェックアウトを試行する必要のあるファイルの最小数を定義できます。 デフォルトは100です。
- clean.requireForce
-
-f
または-i
または-n
が指定されない限り、git-clean が何もしないようにするためのブール値です。 デフォルトは true です。 - clone.defaultRemoteName
-
リポジトリのクローンを作成するときに作成するリモートの名前。 デフォルトは
origin
で、--origin
コマンドラインオプションを git-clone(1) に渡すことでオーバーライドできます。 - clone.rejectShallow
-
リポジトリが浅い(shallow)場合は、リポジトリの複製(clone)を拒否します。コマンドラインでオプション
--reject-shallow
を渡すことでオーバーライドできます。 git-clone(1) を参照してください - clone.filterSubmodules
-
部分(partial)クローン・フィルタが提供され(git-rev-list(1) の
--filter
を参照)、かつ、--recurse-submodules
が使用されている場合は、フィルタをサブモジュールにも適用します。 - color.advice
-
ヒントの色を有効/無効にするブール値(たとえば、プッシュが失敗した場合のリストについては
advice.*
を参照します)。always
またはfalse
(またはnever
) またはauto
(またはtrue
) に設定でき、その場合、色は、エラー出力が端末に送信される場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.advice.hint
-
ヒントにはカスタマイズされた色を使用します。
- color.blame.highlightRecent
-
行の年齢に応じて、
git blame --color-by-age
の行注釈の色を指定します。この設定は、色と日付設定のコンマ区切りリストに設定する必要があります。色で開始および終了し、日付は古いものから新しいものへと設定する必要があります。 行が指定されたタイムスタンプの前に導入された場合、メタデータは指定の色で色付けされ、古いタイムスタンプの色を上書きします。
絶対タイムスタンプの代わりに、相対タイムスタンプも機能します。例えば、
2.weeks.ago
は、2週間より古いものに対処するために有効です。デフォルトは
blue,12 month ago,white,1 month ago,red
で、1年以上前のすべてを青に色付けし、1か月前から1年前までの変更は白のままにし、先月に導入された行赤に色付けします。 - color.blame.repeatedLines
-
前の行と同じコミットからのものである場合、指定の色を使用して
git Blame --color-lines
の行注釈を色付けします。 デフォルトはシアン(cyan)色です。 - color.branch
-
git-branch(1) の出力で色を有効/無効にするブール値。
always
またはfalse
(またはnever
) またはauto
(またはtrue
)に設定でき、その場合、色は出力が端末への場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.branch.<slot>
-
ブランチの色付けにスタマイズ色を使用します。
<slot>
は、current
(現在のブランチ)、local
(ローカルブランチ)、remote
(refs/remotes/
内のリモート追跡ブランチ)、upstream
(アップストリーム追跡ブランチ)、plain
(その他のref)、のいずれかです。 - color.diff
-
ANSIエスケープシーケンスを使用してパッチに色を追加するかどうか。 これが
always
に設定されている場合、 git-diff(1) と git-log(1) と git-show(1) はすべてのパッチに色を使用します。true
またはauto
に設定されている場合、これらのコマンドは、端末への出力時にのみ色を使用します。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。これは、 git-format-patch(1) または
git-diff-{asterisk}
配管コマンドには影響しません。--color[=<when>]
オプションを使用してコマンドラインでオーバーライドできます。 - color.diff.<slot>
-
diffカラー化にカスタマイズ色を使用します。
<slot>
は、パッチのどの部分で指定された色を使用するかを指定します。 次のいずれか一つです:context
(コンテキストテキスト。plain
は歴史的な同義語です)、meta
(メタ情報)、frag
(ハンクヘッダー)、func
(ハンクヘッダーの関数)、old
(削除された行)、new
(追加された行)、commit
(コミットヘッダー)、whitespace
(空白エラーを強調表示)、oldMoved
(削除された複数行)、newMoved
(追加された複数行)、oldMovedDimmed
、oldMovedAlternative
、oldMovedAlternativeDimmed
、newMovedDimmed
、newMovedAlternative
、newMovedAlternativeDimmed
(詳細については、 git-diff(1) の--color-moved
の<mode>
設定参照)、contextDimmed
、oldDimmed
、newDimmed
、contextBold
、oldBold
、newBold
(詳細については git-range-diff(1) 参照)。 - color.decorate.<slot>
-
git log --decorate
出力にカスタマイズ色を使用します。<slot>
にはそれぞれ、ローカルブランチ、リモート追跡ブランチ、タグ、stash、HEADと、graftedコミットをあらわす、branch
、remoteBranch
、tag
、stash
、HEAD
、grafted
のうちの一つを指定します。 - color.grep
-
always
に設定すると、常に一致を強調表示します。false
(またはnever
)の場合、決して一致を強調表示しません。true
またはauto
に設定すると、出力が端末に書き込まれる場合にのみ色を使用します。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.grep.<slot>
-
grepの色付けにカスタマイズ色を使用します。
<slot>
は、指定の色を使用する行の部分を指定します。-
context
-
コンテキスト行の非一致テキスト(
-A
または-B
または-C
使用時) -
filename
-
ファイル名接頭辞(
-h
使用時以外) -
function
-
関数名行(
-p
使用時) -
lineNumber
-
行番号接頭辞(
-n
使用時) -
column
-
桁番号接頭辞(
--column
使用時) -
match
-
一致テキスト(
matchContext
とmatchSelected
の設定と同じ) -
matchContext
-
内容行の一致テキスト
-
matchSelected
-
選択した行でテキストのマッチングを行います。 また、次の git-log(1) サブコマンドをカスタマイズするために使用されます:
--grep
と--author
と--committer
-
selected
-
選択した行でテキストとマッチングしません。 また、次の git-log(1) サブコマンドをカスタマイズするために使用されます:
--grep
と--author
と--committer
-
separator
-
行内のフィールド間セパレータ(
:
と-
と=
)と、ハンク間セパレータ(--
)
-
- color.interactive
-
always
に設定すると、対話プロンプトと表示には常に色を使用します(git-add --interactive
やgit-clean --interactive`で使用されるものなど)。 false(または `never
)の場合、決して色を使用しません。true
またはauto
に設定すると、出力が端末に向けられている場合にのみ色を使用します。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.interactive.<slot>
-
git add --interactive
およびgit clean --interactive
出力にカスタマイズ色を使用します。<slot>`は、対話コマンドからの通常の出力の4つの異なるタイプに対して、 `prompt
またはheader
またはhelp
またはerror
の場合があります。 - color.pager
-
auto
カラーモードがページャーに送られる出力を色付けするかどうかを指定するブール値。 デフォルトはtrueです。 ページャーがANSIカラーコードを理解しない場合は、これをfalseに設定します。 - color.push
-
プッシュエラーで色を有効/無効にするブール値。
always
、false
(またはnever
)またはauto
(またはtrue
)に設定でき、その場合、色はエラー出力が端末に送られる場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.push.error
-
プッシュエラーのカスタマイズされた色に使用。
- color.remote
-
設定されている場合、行の先頭にあるキーワードが強調表示されます。 キーワードは
error
とwarning
とhint
とsuccess
であり、大文字と小文字を区別せずに照合されます。always
またはfalse
(またはnever
)またはauto
(またはtrue
)に設定できます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.remote.<slot>
-
リモートキーワードごとにカスタマイズ色を使用します。
<slot>
は、対応するキーワードに一致するhint
またはwarning
またはsuccess
またはerror
の場合があります。 - color.showBranch
-
linkgit:git-show-branch[1]の出力で色を有効/無効にするブール値。
always
、false
(またはnever
)またはauto
(またはtrue
) に設定でき、その場合、色は出力が端末への場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.status
-
git-status(1) の出力で色を有効/無効にするブール値。
always
、false
(またはnever
)またはauto
(またはtrue
)に設定でき、その場合、色は出力が端末への場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.status.<slot>
-
ステータスの色付けにカスタマイズ色を使用します。
<slot>
は次から一つを選択します。header
(ステータスメッセージのヘッダーテキスト)、added
またはupdated
((追加されたがコミットされていないファイル)、changed
(変更されたがインデックスに追加されていないファイル)、untracked
(Git によって追跡されていないファイル)、branch
(現在のブランチ)、nobranch
(「no branch」警告を表示する色。デフォルトは赤)、localBranch
またはremoteBranch
(ブランチと追跡情報をステータス表示する際の、ローカルブランチとリモートブランチの名前) またはunmerged
(変更がマージされていないファイル) - color.transport
-
プッシュが拒否されたときに色を有効/無効にするブール値。
always
、false
(またはnever
)またはauto
(またはtrue
)に設定でき、その場合、色はエラー出力が端末に送られる場合にのみ使用されます。 設定されていない場合は、color.ui
の値が使用されます(デフォルトではauto
)。 - color.transport.rejected
-
プッシュが拒否された時に使うカスタマイズ色。
- color.ui
-
この変数は、コマンドファミリごとの色の使用を制御する
color.diff
やcolor.grep
などの変数のデフォルト値を決定します。 より多くのコマンドが--color
オプションのデフォルトを設定するための構成を習得するにつれて、その範囲は拡大します。 他の構成または--color
オプションで明示的に有効にしない限り、Gitコマンドで色を使用しないようにする場合は、false
またはnever
に設定します。 機械での利用を目的としない、すべての出力でカラーを使用する場合はalways
に設定し、端末への書き込み時にそのような出力でカラーを使用する場合はtrue
またはauto
(これはGit 1.8.4以降のデフォルトです)に設定します。 - column.ui
-
サポートされているコマンドを列(column)で出力するかどうかを指定します。 この変数は、スペースまたはコンマで区切られたトークンのリストで構成されます:
以下のオプションは、機能を有効にするタイミングを制御します(デフォルトは
never
):-
always
-
常に列表示
-
never
-
決して列表示しない
-
auto
-
端末へ出力の場合は列表示
以下のオプションはレイアウトを制御します(デフォルトは
column
)。always
やnever
やauto
のいずれも指定されていない場合に、以下のいずれかを設定すると、always
の指定を含みます。-
column
-
行の前に列を埋める
-
row
-
列の前に行を埋める
-
plain
-
1つの列に表示
最後に、以下のオプションはレイアウトオプションと組み合わせることができます(デフォルトは
nodense
):-
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
でタグリストを列出力するかどうかを指定します。 詳細については、column.ui
を参照してください。 - commit.cleanup
-
この設定は、
git commit
の--cleanup
オプションのデフォルトを上書きします。 詳細については、 git-commit(1) を参照してください。 デフォルトを変更すると、コメント文字#
で始まる行をログメッセージに常に残しておきたい場合に役立ちます。その場合は、git config commit.cleanup whitespace
を実行します(注意:これを行う場合は、コミットログテンプレートの#
で始まるヘルプ行を自分で削除する必要があることに注意してください)。 - commit.gpgSign
-
すべてのコミットをGPG署名する必要があるかどうかを指定するブール値。 リベースなどの操作を行うときにこのオプションを使用すると、多数のコミットが署名される可能性があります。 エージェントを使用して、GPGパスフレーズの入力を省略するようにすると便利な場合があります。
- commit.status
-
エディタを使用してコミットメッセージを準備するときに、コミットメッセージテンプレートにステータス情報を含めることを有効/無効にするブール値。 デフォルトはtrueです。
- commit.template
-
新しいコミットメッセージのテンプレートとして使用するファイルのパス名を指定します。
- commit.verbose
-
git commit
でverboseレベルを指定するブール値またはint。 git-commit(1) を参照してください。 - commitGraph.generationVersion
-
commit-graph ファイルの書き込みまたは読み取り時に使用する世代番号バージョン(generation number version)のタイプを指定します。 バージョン 1 が指定されている場合、修正されたコミット日付は書き込まれたり読み取られたりしません。 デフォルトは 2 です。
- commitGraph.maxNewFilters
-
git commit-graph write
の--max-new-filters
オプションのデフォルト値を指定します(git-commit-graph(1) 参照)。 - commitGraph.readChangedPaths
-
trueの場合、gitはcommit-graphファイルで変更パスブルームフィルター(the changed-path Bloom filters)を使用します(存在し、有効な場合)。 デフォルトはtrueです。 詳細については、 git-commit-graph(1) を参照してください。
- credential.helper
-
ユーザー名またはパスワードの資格情報が必要なときに呼び出される外部ヘルパーを指定します。ヘルパーは、ユーザーに資格情報の入力を求めないように、外部ストレージを参照する場合があります。これは通常、可能な引数を持つ資格情報ヘルパーの名前ですが、引数を持つ絶対パス、または
!
が前に付いている場合はシェルコマンドの場合もあります。注意: 複数のヘルパーが定義されている場合があることに注意してください。詳細と例については、 gitcredentials(7) を参照してください。
- credential.useHttpPath
-
資格情報を取得するとき、http URL または https URL のパス部分を重要視します。デフォルトはfalseです。詳細については、 gitcredentials(7) を参照してください。
- credential.username
-
ネットワーク認証にユーザー名が設定されていない場合は、デフォルトでこのユーザー名を使用します。 以下の credential.<context>.* と gitcredentials(7) を参照してください。
- credential.<url>.*
-
上記の credential.* オプションは、一部の資格情報に選択的に適用できます。 たとえば、 "credential.https://example.com.username" は、example.com への https 接続に対してのみデフォルトのユーザー名を設定します。 URLの照合方法の詳細については、 gitcredentials(7) を参照してください。
- credentialCache.ignoreSIGHUP
-
git-credential-cache—daemon に、終了する代わりにSIGHUPを無視するように指示します。
- credentialStore.lockTimeoutMS
-
資格情報ファイルをロックしようとしたときに git-credential-store が再試行する時間の長さ(ミリ秒単位)。値0は、まったく再試行しないことを意味します。-1は無期限に試すことを意味します。デフォルトは1000です(つまり、1秒間再試行します)。
- completion.commands
-
これは、補完コマンドのリストからコマンドを追加または削除するためにgit-completion.bashによってのみ使用されます。通常、磁器コマンドと、いくつかの選択されたコマンドのみが補完します。この変数には、スペースで区切ってコマンドを追加できます。 コマンドの前に
-
を付けると、既存のリストから削除されます。 - diff.autoRefreshIndex
-
git diff を使用して作業ツリーファイルと比較する場合、統計のみの変更を変更されたものと見なさない。代わりに、サイレントに
git update-index --refresh
を実行して、ワークツリーの内容がインデックスの内容と一致するパスの、キャッシュされた統計情報を更新します。このオプションのデフォルトはtrueです。注意: これはgit diff
磁器コマンドにのみ影響し、git diff-files
などの下位レベルのdiffコマンドには影響しないことに注意してください。 - diff.dirstat
-
git-diff(1) およびその仲間に対する
--dirstat
オプションのデフォルトの動作を指定する--dirstat
パラメーターのコンマ区切りリスト。デフォルトは(--dirstat=<param1,param2,...>
を使用して)コマンドラインでオーバーライドできます。フォールバックのデフォルトはchanges,noncumulative,3
です(diff.dirstat
によって変更されていない限り)。以下のパラメータを使用できます:-
changes
-
ソースから削除された、または宛先に追加された行をカウントして、dirstat数を計算します。これは、ファイル内の純粋なコード移動の量を無視します。つまり、ファイル内の行の再配置は、他の変更ほどカウントされません。これは、パラメーターが指定されていない場合のデフォルトの動作です。
-
lines
-
通常の行ベースのdiff分析を実行し、削除/追加 された行数を合計して、dirstat数を計算します。(バイナリファイルの場合、バイナリファイルには行の自然な概念がないため、代わりに64バイトのチャンクをカウントします)。 これは
changes
動作よりもコストのかかる--dirstat
動作ですが、他の変更と同じようにファイル内の再配置された行をカウントします。 結果の出力は、他の--*stat
オプションから得られるものと一致しています。 -
files
-
変更されたファイルの数を数えて、dirstat数を計算します。変更された各ファイルは、dirstat分析で等しくカウントされます。これは、ファイルの内容をまったく調べる必要がないため、計算コストが最も安価な
--dirstat
の動作です。 -
cumulative
-
親ディレクトリの子ディレクトリの変更もカウントします。
cumulative
を使用する場合、報告されるパーセンテージの合計が100%を超える場合があることに注意してください。 デフォルトの(非累積的な)動作は、non-cumulative
パラメーターで指定できます。 - <limit>
-
整数パラメーターは、カットオフパーセント(デフォルトでは3%)を指定します。変更への貢献がこの割合より少ないディレクトリは出力に表示されません。
例: 変更されたファイルの総数の10%未満のディレクトリを無視し、親ディレクトリに子ディレクトリの数を累積しながら、変更されたファイルをカウントする:
files,10,cumulative
-
- diff.statGraphWidth
-
--stat
出力でグラフ部分の幅を制限します。設定されている場合、format-patchを除く--stat
出力を生成するすべてのコマンドに適用されます。 - diff.context
-
デフォルトの3ではなく<n>行のコンテキストで差分を生成します。この値は
-U
オプションによってオーバーライドされます。 - diff.interHunkContext
-
指定された行数までのdiffハンク間のコンテキストを表示し、それによって互いに近いハンクを融合します。この値は、
--inter-hunk-context
コマンドラインオプションのデフォルトとして機能します。 - diff.external
-
この構成変数が設定されている場合、diffの生成は、内部のdiff機構を使用して実行されるのではなく、指定されたコマンドを使用して実行されます。 ‘GIT_EXTERNAL_DIFF’ 環境変数でオーバーライドできます。このコマンドは、 git(1) の「git Diffs」で説明されているパラメーターを使用して呼び出されます。 注意: ファイルのサブセットでのみ外部diffプログラムを使用する場合は、代わりに gitattributes(5) を使用することをお勧めします。
- diff.ignoreSubmodules
-
--ignore-submodules
のデフォルト値を設定します。これはgit diff
磁器コマンドにのみ影響し、git diff-files
などの下位レベルのdiffコマンドには影響しないことに注意してください。git checkout
やgit switch
も、コミットされていない変更を報告するときにこの設定を尊重します。 all に設定すると、--ignore-submodules
コマンドラインオプションを使用してオーバーライドされない限り、status.submoduleSummary
が設定されている場合、通常は git commit および git status で表示されるサブモジュールの概要が無効になります。 git submodule コマンドは、この設定の影響を受けません。デフォルトでは、これは untracked に設定されているため、追跡されていないサブモジュールはすべて無視されます。 - diff.mnemonicPrefix
-
設定されている場合、
git diff
は、比較対象に応じて標準の a/ や b/ とは異なるプレフィックスのペアを使用します。この構成が有効な場合、逆差分出力でもプレフィックスの順序が入れ替わります:-
git diff
-
(i)ndex と (w)ork tree を比較
-
git diff HEAD
-
(c)ommit と (w)ork tree を比較
-
git diff --cached
-
(c)ommit と (i)ndex を比較
-
git diff HEAD:file1 file2
-
(o)bject と (w)ork tree エンティティを比較
-
git diff --no-index a b
-
2つの非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" に設定すると、基本的な名前変更の検出が有効になります。 "copies" または "copy" に設定されている場合、Gitはコピーも検出します。デフォルトはtrueです。これは git-diff(1) や git-log(1) のような git diff 磁器コマンドにのみ影響し、 git-diff-files(1) などの下位レベルのコマンドには影響しないことに注意してください。
- diff.suppressBlankEmpty
-
空の出力行の前にスペースを印刷する標準的な動作を禁止するブール値。デフォルトはfalseです。
- diff.submodule
-
サブモジュールの違いを表示する形式を指定します。 "short" 形式は、範囲の最初と最後にコミットの名前を表示するだけです。 "log" 形式は、 git-submodule(1) の
summary
のように範囲内のコミットをリストします。 "diff" 形式は、サブモジュールの変更された内容のインラインdiffを示します。デフォルトは "short" です。 - diff.wordRegex
-
単語ごとの差の計算を実行するときに「単語」(word)とは何かを判別するために使用されるPOSIX拡張正規表現。正規表現に一致する文字シーケンスは「単語」(words)であり、他のすべての文字は*無視できる*空白(whitespace)です。
- diff.<driver>.command
-
カスタムdiffドライバーコマンド。詳細については gitattributes(5) を参照してください。
- diff.<driver>.xfuncname
-
diffドライバーがハンクヘッダーを認識するために使用する必要がある正規表現。内蔵パターンを使用することもできます。詳細については gitattributes(5) を参照してください。
- diff.<driver>.binary
-
このオプションをtrueに設定すると、diffドライバーがファイルをバイナリとして処理します。詳細については gitattributes(5) を参照してください。
- diff.<driver>.textconv
-
ファイルのテキスト変換バージョンを生成するためにdiffドライバーが呼び出す必要のあるコマンド。変換の結果は、人間が読める形式のdiffを生成するために使用されます。詳細については gitattributes(5) を参照してください。
- diff.<driver>.wordRegex
-
diffドライバーが単語(words)を1行に分割するために使用する必要がある正規表現。詳細については gitattributes(5) を参照してください。
- diff.<driver>.cachetextconv
-
このオプションをtrueに設定すると、diffドライバーがテキスト変換出力をキャッシュするようになります。詳細については gitattributes(5) を参照してください。
-
araxis
-
Use Araxis Merge (requires a graphical session)
-
bc
-
Use Beyond Compare (requires a graphical session)
-
bc3
-
Use Beyond Compare (requires a graphical session)
-
bc4
-
Use Beyond Compare (requires a graphical session)
-
codecompare
-
Use Code Compare (requires a graphical session)
-
deltawalker
-
Use DeltaWalker (requires a graphical session)
-
diffmerge
-
Use DiffMerge (requires a graphical session)
-
diffuse
-
Use Diffuse (requires a graphical session)
-
ecmerge
-
Use ECMerge (requires a graphical session)
-
emerge
-
Use Emacs' Emerge
-
examdiff
-
Use ExamDiff Pro (requires a graphical session)
-
guiffy
-
Use Guiffy’s Diff Tool (requires a graphical session)
-
gvimdiff
-
Use gVim (requires a graphical session)
-
kdiff3
-
Use KDiff3 (requires a graphical session)
-
kompare
-
Use Kompare (requires a graphical session)
-
meld
-
Use Meld (requires a graphical session)
-
nvimdiff
-
Use Neovim
-
opendiff
-
Use FileMerge (requires a graphical session)
-
p4merge
-
Use HelixCore P4Merge (requires a graphical session)
-
smerge
-
Use Sublime Merge (requires a graphical session)
-
tkdiff
-
Use TkDiff (requires a graphical session)
-
vimdiff
-
Use Vim
-
winmerge
-
Use WinMerge (requires a graphical session)
-
xxdiff
-
Use xxdiff (requires a graphical session)
-
- diff.indentHeuristic
-
このオプションを
false
に設定すると、パッチを読みやすくするためにdiffハンク境界をシフトするデフォルトのヒューリスティックが無効になります。 - diff.algorithm
-
diffアルゴリズムを選択します。 派生形は以下のとおりです:
-
default
,myers
-
基本的な貪欲な差分アルゴリズム。現在、これがデフォルトです。
-
minimal
-
より多くの時間を費やして。可能な限り最小の差分が生成されるようにします。
-
patience
-
パッチを生成するときは、patience diff(忍耐差分)アルゴリズムを使用してください。
-
histogram
-
このアルゴリズムは、忍耐アルゴリズムを拡張して、「発生頻度の低い共通要素をサポート」(support low-occurrence common elements)します。
-
- diff.wsErrorHighlight
-
差分の
context
またはold または `new
行の空白エラー(whitespace errors)を強調表示します。複数の値はコンマで区切られ、none
は前の値をリセットし、default
はリストをnew
にリセットし、all
はold,new,context
の省略形です。空白のエラー(whitespace errors)はcolor.diff.whitespace
で色分けされています。コマンドラインオプション--ws-error-highlight=<kind>
はこの設定を上書きします。 - diff.colorMoved
-
有効な
<mode>
またはtrueのいずれかに設定すると、diff内の移動された行が異なる色で表示されます。有効なモードの詳細については、 git-diff(1) の--color-moved
を参照してください。単にtrueに設定すると、デフォルトのカラーモードが使用されます。 falseに設定すると、移動した行は色付けされません。 - diff.colorMovedWS
-
このオプションは、例えば
diff.colorMoved
設定を使用して移動した行に色を付ける場合、スペース(spaces)をどのように扱うかを<mode>
で制御します。有効なモードの詳細については git-diff(1) の--color-moved-ws
を参照してください。 - diff.tool
-
git-difftool(1) で使用する diff ツールを制御します。 この変数は、
merge.tool
で構成された値をオーバーライドします。 以下のリストは、有効な組み込み値を示しています。 その他の値はカスタム diff ツール(tool)として扱われ、対応する difftool.<tool>.cmd 変数を定義する必要があります。 - diff.guitool
-
-g
/--gui
フラグが指定されている場合に、 git-difftool(1) によって使用されるdiffツールを制御します。 この変数は、merge.guitool
で構成された値をオーバーライドします。 以下のリストは、有効な組み込み値を示しています。 その他の値はカスタム diff ツール(tool)として扱われ、対応する difftool.<guitool>.cmd 変数を定義する必要があります。 - difftool.<tool>.cmd
-
指定のdiffツール(<tool>)を呼び出すコマンドを指定します。指定されたコマンドは、次の変数を使用してシェルで評価されます:
LOCAL
は、diff pre-imageの内容を含む一時ファイルの名前に設定され、REMOTE
は、diff post-imageの内容を含む一時ファイルの名前に設定されます。詳細については、 git-difftool(1) の
--tool=<tool>
オプションを参照してください。 - difftool.<tool>.path
-
指定のツール(<tool>)のパスを上書きします。これは、あなたのツールがPATHにない場合に役立ちます。
- difftool.trustExitCode
-
呼び出された difftool がゼロ以外の終了ステータス(exit status)を返す場合は、difftool を終了(exit)します。
詳細については、 git-difftool(1) の
--trust-exit-code
オプションを参照してください。 - difftool.prompt
-
diffツールを呼び出す前にプロンプトを表示します。
- difftool.guiDefault
-
デフォルトで
diff.guitool
を使用するにはtrue
を設定します(引数--gui
を指定するのと同じです)。DISPLAY
環境変数の値に応じてdiff.guitool
またはdiff.tool
を選択するにはauto
を設定します。 なおデフォルトはfalse
で、diff.guitool
を使用するには--gui
引数を明示的に指定する必要があります。 - extensions.objectFormat
-
使用するハッシュアルゴリズムを指定します。 許容値は
sha1
とsha256
です。 指定しない場合、sha1
が想定されます。core.repositoryFormatVersion
が1でない限り、このキーを指定するとエラーになります。注意: この設定は、git-init(1) または git-clone(1) によってのみ設定する必要があることに注意してください。 初期化後に変更しようとすると機能せず、診断が難しい問題が発生します。
- extensions.worktreeConfig
-
有効にすると、ワークツリーは、
$GIT_COMMON_DIR/config
ファイルに加えて、$GIT_DIR/config.worktree
ファイルから構成設定を読み込みます。$GIT_COMMON_DIR
と$GIT_DIR
はメインの作業ツリーと同じですが、他の作業ツリーの$GIT_DIR
は$GIT_COMMON_DIR/worktrees/<id>/
に等しいことに注意してください。config.worktree
ファイルの設定は、他の構成ファイルの設定を上書きします。extensions.worktreeConfig
を有効にするときは、特定の値達を共通構成ファイル(common config file)からメインの作業ツリーのconfig.worktree
ファイル (存在する場合) に移動(move)するように注意する必要があります:-
core.worktree
を$GIT_COMMON_DIR/config
から$GIT_COMMON_DIR/config.worktree
に移動(move)しなければなりません。 -
core.bare
が true の場合、$GIT_COMMON_DIR/config
から$GIT_COMMON_DIR/config.worktree
に移動(move)しなければなりません。各ワークツリーのカスタマイズ可能な sparse-checkout 設定に対する要望に応じて、
core.sparseCheckout
とcore.sparseCheckoutCone
の場所(locations)を調整することも有益な場合があります。 デフォルトでは、git sparse-checkout
ビルトインはextensions.worktreeConfig
を有効にし、これらの構成値をワークツリーごとに割り当て、$GIT_DIR/info/sparse-checkout
ファイルを使用して各ワークツリーごとに独立したスパース性を指定します。 詳細については、 git-sparse-checkout(1) を参照してください。歴史的な理由から、
extensions.worktreeConfig
はcore.repositoryFormatVersion
の設定に関係なく尊重されます。
-
- fastimport.unpackLimit
-
git-fast-import(1) によってインポートされたオブジェクトの数がこの制限を下回る場合、オブジェクトは緩いオブジェクト(loose object)ファイルに解凍されます。 ただし、インポートされたオブジェクトの数がこの制限以上の場合、パックはパックとして保存されます。 fast-import(高速インポート)からパックを保存すると、特に低速のファイルシステムで、インポート操作をより速く完了することができます。 設定されていない場合は、代わりに
transfer.unpackLimit
の値が使用されます。 - feature.*
-
feature.
で始まる構成設定は、他の構成設定のグループのデフォルトを変更します。 これらのグループは、Git開発者コミュニティによって推奨されるデフォルトとして作成されており、変更される可能性があります。 特に、新しい構成オプションが異なるデフォルトで追加される場合があります。 - feature.experimental
-
Gitの新機能であり、将来のデフォルトで検討されている構成オプションを有効にします。 ここに含まれる構成設定は、マイナーバージョンの更新を含め、リリースごとに追加または削除される場合があります。 これらの設定は非常に新しいため、意図しない相互作用が発生する可能性があります。 実験的な機能に関するフィードバックを提供したい場合は、この設定を有効にしてください。 新しいデフォルト値は以下のとおりです:
-
fetch.negotiationAlgorithm=skipping
は、一度により多くのコミットをスキップし、ラウンドトリップの数を減らすことで、フェッチネゴシエーション時間を改善できます。 -
pack.useBitmapBoundaryTraversal=true
は、オブジェクトの移動をより少なくすることでビットマップの走査時間を改善できるかもしれません。
-
- feature.manyFiles
-
作業ディレクトリに多数のファイルがあるリポジトリを最適化する構成オプションを有効にします。 多くのファイルがあると、
git status
やgit checkout
などのコマンドが遅くなる可能性があり、これらの新しいデフォルトによりパフォーマンスが向上します:-
index.skipHash=true
は、末尾のチェックサムを計算しないことでインデックスの書き込みを高速化します。 注意: これにより、 Git バージョン 2.13.0 より前のバージョンではインデックスのパースが拒否され、 そして、 Git バージョン 2.40.0 より前のバージョンではgit fsck
の実行中に破損したインデックスが報告されることに注意してください。 -
index.version=4
インデックスのpath-prefix圧縮を有効にします。 -
core.untrackedCache=true
追跡されていないキャッシュを有効にします。この設定は、mtimeがマシンで機能していることを前提としています。
-
- fetch.recurseSubmodules
-
このオプションは、
git fetch
(およびgit pull
の基になるフェッチ)が入力されたサブモジュールに再帰的にフェッチするかどうかを制御します。 このオプションは、ブール値またはon-demand
のいずれかに設定できます。 ブール値に設定すると、フェッチとプルの動作が変更され、trueに設定されている場合は無条件にサブモジュールに再帰し、falseに設定されている場合はまったく再帰しません。on-demand
に設定すると、フェッチとプルは、スーパープロジェクトがサブモジュールの参照を更新するコミットを取得したときにのみ、入力されたサブモジュールに再帰します。 デフォルトはon-demand
、またはsubmodule.recurse
が設定されている場合はその値です。 - fetch.fsckObjects
-
trueに設定されている場合、git-fetch-packはフェッチされたすべてのオブジェクトをチェックします。 チェックされる内容については、
transfer.fsckObjects
を参照してください。 デフォルトはfalseです。 設定されていない場合は、代わりにtransfer.fsckObjects
の値が使用されます。 - fetch.fsck.<msg-id>
-
fsck.<msg-id>
のように機能しますが、 git-fsck(1) の代わりに git-fetch-pack(1) によって使用されます。 詳細については、fsck.<msg-id>
のドキュメントを参照してください。 - fetch.fsck.skipList
-
fsck.skipList
のように機能しますが、 git-fsck(1) の代わりに git-fetch-pack(1) によって使用されます。 詳細については、fsck.skipList
のドキュメントを参照してください。 - fetch.unpackLimit
-
Gitネイティブ転送を介してフェッチされるオブジェクトの数がこの制限を下回る場合、オブジェクトは緩いオブジェクト(loose object)ファイルに解凍されます。 ただし、受信したオブジェクトの数がこの制限以上の場合、受信したパックは、欠落しているデルタベースを追加した後、パックとして保存されます。 プッシュからパックを保存すると、特に低速のファイルシステムで、プッシュ操作をより速く完了することができます。 これが設定されていない場合は、代わりに
transfer.unpackLimit
の値が使用されます。 - fetch.prune
-
trueの場合、fetchはコマンドラインで
--prune
オプションが指定されたかのように自動的に動作します。remote.<name>.prune
および git-fetch(1) の「PRUNING」セクションも参照してください。 - fetch.pruneTags
-
trueの場合、フェッチは、まだ設定されていない場合、刈り込み(pruning)時に
refs/tags/*:refs/tags/*
refspecが提供されたかのように自動的に振る舞います。 これにより、このオプションとfetch.prune
の両方を設定して、アップストリーム参照への 1=1 マッピングを維持できます。remote.<name>.pruneTags
および git-fetch(1) の「PRUNING」セクションも参照してください。 - fetch.output
-
ref updateステータスの出力方法を制御します。 有効な値は
full
とcompact
です。 デフォルト値はfull
です。 詳細については、 git-fetch(1) の「OUTPUT」セクションを参照してください。 - fetch.negotiationAlgorithm
-
サーバーによって送信されるパックファイルの内容をネゴシエートするときに、ローカルリポジトリ内のコミットに関する情報がどのように送信されるかを制御します。
consecutive
に設定すると、連続したコミットをそれぞれチェックするアルゴリズムを使用します。skipping
に設定すると、収束を高速化するためにコミットをスキップするアルゴリズムが使用されますが、必要以上の大きさのパックファイルが生成される可能性があります。 または、noop
に設定して情報をまったく送信しないようにします。これにより、ほぼ確実に必要以上に大きなパックファイルが生成されますが、ネゴシエーション・ステップはスキップされます。default
に設定すると、それ以前に行われた設定をオーバーライドしてデフォルトの振る舞いをします。 デフォルトは通常consecutive
ですが、feature.experimental
が true の場合、デフォルトはskipping
です。 値が不明な場合、git fetch
でエラーが発生します。git-fetch(1) の
--negotiate-only
および--negotiation-tip
オプションも参照してください。 - fetch.showForcedUpdates
-
falseに設定すると、 git-fetch(1) および git-pull(1) コマンドで
--no-show-forced-updates
が有効になります。 デフォルトはtrueです。 - fetch.parallel
-
一度に並行して実行されるフェッチ操作の最大数を指定します(サブモジュール、または、git-fetch(1) の
--multiple
オプションが有効な場合はリモート)。値0は、適切なデフォルトを提供します。 設定されていない場合、デフォルトで1になります。
サブモジュールの場合、この設定は、
submodule.fetchJobs
構成設定を使用してオーバーライドできます。 - fetch.writeCommitGraph
-
リモートからパックファイルをダウンロードするすべての
git fetch
コマンドの後でcommit-graphを書き込むには、trueに設定します。--split
オプションを使用すると、ほとんどの実行で、既存のcommit-graphファイルの上に非常に小さなcommit-graphファイルが作成されます。 場合によっては、これらのファイルがマージされ、書き込みに時間がかかることがあります。 更新されたcommit-graphファイルがあると、git merge-base
やgit push -f
やgit log --graph
などの多くのGitコマンドのパフォーマンス改善に役立ちます。 デフォルトはfalseです。 - fetch.bundleURI
-
この値には、 元の Git サーバーからの増分フェッチを実行する前に、 バンドル URI から Git オブジェクト・データをダウンロードするための URI が格納されます。これは、 git-clone(1) の
--bundle-uri
オプションの動作に似ています。 指定されたバンドル URI に増分フェッチ用に編成されたバンドル・リストが含まれている場合、git clone --bundle-uri
ではfetch.bundleURI
値を設定します。あなたが、 この値を変更し、 かつ、 あなたのリポジトリに
fetch.bundleCreationToken
値がある場合、 新しいバンドル URI からフェッチする前に、fetch.bundleCreationToken
値を削除してください。 - fetch.bundleCreationToken
-
fetch.bundleURI
を使用して「creationToken」ヒューリスティックを使用するバンドル・リストから増分フェッチする場合、 この設定値には、 ダウンロードされたバンドルの、 最大creationToken
値が格納されます。 この値は、 通知されたcreationToken
がこの値を超えない限り、 その後のバンドルがダウンロードされないようにするために使用されます。作成トークン(creation token)の値は、 指定のバンドル URI を提供しているプロバイダーが使います。
fetch.bundleURI
で URI を変更する場合は、 フェッチする前に必ずfetch.bundleCreationToken
値を削除してください。 - format.attach
-
format-patch
のデフォルトとして マルチパート(multipart)/混合(mixed) の添付(attachments)を有効にします。 値は二重引用符("..."
)で囲まれた文字列にすることもでき、その場合、 添付ファイルがデフォルトとして有効になり、 この二重引用符で囲まれた文字列が境界として設定されます。 git-format-patch(1) の--attach
オプションを参照してください。 以前に設定した値を無効にするには、値を空の文字列に設定します。 - format.from
-
--from
オプションのデフォルト値をformat-patchに提供します。ブール値、または名前と電子メールアドレスを受け入れます。 falseの場合、format-patchはデフォルトで--no-from
になり、パッチメールのFrom:
フィールドに直接コミット作成者を使用します。 trueの場合、format-patchはデフォルトで--from
になり、パッチメールのFrom:
フィールドにあなたのコミッターIDを使い、異なる場合にはパッチメールの本文にFrom:
フィールドを含めます。 ブール値でない値を設定した場合、format-patch はあなたのコミッターIDの代わりにその値を使用します。 デフォルトは false です。 - format.forceInBodyFrom
-
--[no-]force-in-body-from
オプションのデフォルト値を format-patch に提供します。 デフォルトは false です。 - format.numbered
-
パッチ件名のシーケンス番号を有効または無効にできるブール値。 デフォルトは「auto」で、複数のパッチがある場合にのみ有効になります。 「true」または「false」に設定することで、すべてのメッセージに対して有効または無効にできます。 git-format-patch(1)の
--numbered
オプションを参照してください。 - format.headers
-
メールで送信するパッチに含める追加の電子メールヘッダー。 git-format-patch(1) を参照してください。
- format.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
-
電子メール送信用に、非ASCII文字を含む電子メールヘッダーを「Q-encoding」(RFC 2047で説明)でエンコードします。 デフォルトはtrueです。
- format.pretty
-
log/show/whatchanged コマンドのpretty形式のデフォルト。 git-log(1) 、 git-show(1) 、 git-whatchanged(1) を参照してください。
- format.thread
-
git format-patch
のデフォルトのスレッドスタイル。 ブール値 またはshallow
またはdeep
にすることができます。shallow
スレッドは、すべてのメールをシリーズの先頭にに対して返信します。先頭は、カバーレター、--in-reply-to
、最初のパッチメールの順に選択されます。deep
スレッドは、すべてのメールを前のメールに返信します。 true のブール値はshallow
と同じであり、 false値はスレッド化を無効にします。 - format.signOff
-
デフォルトでformat-patchの
-s/--signoff
オプションを有効にできるブール値。 注意 パッチに「Signed-off-by」トレーラーを追加することは意識的な行為である必要があり、同じオープンソースライセンスの下でこの作品を提出する権利があることを証明することを意味します。 詳細については、「SubmittingPatches」ドキュメントを参照してください。 - format.coverLetter
-
format-patchが呼び出されたときにカバーレターを生成するかどうかを制御するブール値ですが、さらに「auto」に設定して、複数のパッチがある場合にのみカバーレターを生成することができます。 デフォルトはfalseです。
- format.outputDirectory
-
現在の作業ディレクトリの代わりに、結果のファイルを保存するカスタムディレクトリを設定します。 すべてのディレクトリコンポーネントが作成されます。
- format.filenameMaxLength
-
format-patch
コマンドによって生成される出力ファイル名の最大長。 デフォルトは64です。--filename-max-length=<n>
コマンドラインオプションで上書きできます。 - format.useAutoBase
-
format-patch のオプションである
--base=auto
をデフォルトで有効にするためのブール値です。whenAble
に設定すると、適切なベースがある場合に--base=auto
を有効にし、それ以外の場合はフォーマット終了せずにベース情報の追加をスキップすることもできます。 - format.notes
-
format-patchの
--notes
オプションのデフォルト値を提供します。 ブール値、またはnotesを取得する場所を指定するrefを受け入れます。 falseの場合、format-patchのデフォルトは--no-notes
です。 trueの場合、format-patchのデフォルトは--notes
です。 非ブール値に設定されている場合、format-patchのデフォルトは--notes=<ref>
です。ここで、ref
は指定した非ブール値です。 デフォルトはfalseです。ref
ref/notes/true
を使用したい場合は、代わりにそのリテラルを使用してください。この構成は、複数のnotes refを含めるために複数回指定できます。その場合、渡された複数の
--[no-]notes[=]
オプションと同様に動作します。つまり、値true
はデフォルトのnotesを表示し、値<ref>
はそのnotes ref からのnotesも表示し、値false
はそれ以前の設定を無効にし、notesを表示しません。例えば以下の場合、
[format] notes = true notes = foo notes = false notes = bar
refs/notes/bar
からのnotesのみが表示されます。 - format.mboxrd
-
"^>+From " 行をエスケープするために
--stdout
が使用されている場合に、 堅牢な "mboxrd" 形式を有効にするブール値。 - format.noprefix
-
設定すると、 パッチに送信元または宛先のプレフィックスが表示されなくなります。 これは、
git diff
で使用されるdiff.noprefix
オプションと同等です(ただし、format-patch
では無視されます)。 これを設定すると、 あなたが生成したパッチを受信した人は-p0
オプションを使用してパッチを適用する必要があることに注意してください。 - filter.<driver>.clean
-
チェックイン時にワークツリーファイルのコンテンツをブロブに変換するために使用されるコマンド。 詳細については、 gitattributes(5) を参照してください。
- filter.<driver>.smudge
-
チェックアウト時にブロブオブジェクトのコンテンツをワークツリーファイルに変換するために使用されるコマンド。 詳細については、 gitattributes(5) を参照してください。
- fsck.<msg-id>
-
fsck中に、gitは、現在のバージョンのgitでは生成されず、
transfer.fsckObjects
が設定されている場合はネットワーク経由で送信されない、レガシーデータの問題を検出する場合があります。この機能は、そのようなデータを含むレガシーリポジトリの操作をサポートすることを目的としています。fsck.<msg-id>
設定は、 git-fsck(1) によって取得されますが、代わりに、そのようなデータセットreceive.fsck.<msg-id>
のプッシュを受け入れるか、または、クローンまたはフェッチのセットであるfetch.fsck.<msg-id>
を使用します。この文書の残りの部分では、簡潔にするために
fsck.*
変数について説明していますが、対応するreceive.fsck.*
変数とfetch.<msg-id>.*
変数にも同じことが当てはまります。color.ui
やcore.editor
のような変数とは異なり、receive.fsck.<msg-id>
とfetch.fsck.<msg-id>
変数は、設定されていない場合、fsck.<msg-id>
構成にフォールバックしません。さまざまな状況で同じfsck設定を均一に構成するには、3つすべてを同じ値に設定する必要があります。fsck.<msg-id>
が設定されている場合、fsck.<msg-id>
の値をerror
、warn
、ignore
のいずれか一つとすることにより、エラーを警告に切り替える事もでき、その逆も可能です。そして<msg-id>
の部分はメッセージIDです。便利なように、fsckはエラー/警告メッセージの前にメッセージIDを付けます。たとえば「missingEmail: invalid author/committer line - missing email」は、fsck.missingEmail = ignore
を設定するとその問題が非表示になることを意味します。一般に、これらの問題のあるオブジェクトが共有する破損の種類をリストして無視するのではなく、
fsck.skipList
に問題のある既存のオブジェクトを列挙することをお勧めします。前者を実行すると、同じ破損の新しいインスタンスが見過ごされる可能性があります。不明な
fsck.<msg-id>
値を設定すると、fsckが停止(die)しますが、receive.fsck.<msg-id>
やfetch.fsck.<msg-id>
に対して同じことを行うと、gitは単に警告するだけです。サポートされている
<msg-id>
の値については、 git-fsck(1) のFsck Messages
セクションを参照してください。 - fsck.skipList
-
非致命的な理由により既に壊れている(broken)ことが分かっているため無視する必要があるオブジェクト名(1行につき1つの省略されてないSHA-1)のリストへのパス。Git 2.20 以降では、コメント(
#
)文字から行末までと、空行と、先頭と末尾の空白(whitespace)は無視されます。それより古いバージョンでは1行につき1つのSHA-1以外は全てエラーになります。この機能は、無効なコミッターの電子メールアドレスなど、初期のコミットにもかかわらず、安全に無視できるエラーを含む、確立されたプロジェクトを受け入れる必要がある場合に役立ちます。 注意: この設定では、corruptオブジェクトをスキップすることはできません。
fsck.<msg-id>
と同様に、この変数に対応するreceive.fsck.skipList
派生とfetch.fsck.skipList
派生があります。color.ui
やcore.editor
のような変数とは異なり、receive.fsck.skipList
変数とfetch.fsck.skipList
変数は、設定されていない場合、fsck.skipList
構成にフォールバックしません。さまざまな状況で同じfsck設定を均一に構成するには、3つすべてを同じ値に設定する必要があります。古いバージョンのGit(2.20より前)では、オブジェクト名リストを並べ替える必要があることが文書化されています。これは必須ではなく、オブジェクト名は任意の順序で表示できますが、リストを読み取るときに、内部バイナリ検索実装の目的でリストが並べ替えられているかどうかを追跡しました。これにより、既に並べ替えられたリストでは作業を節約できます。膨大なリストがない限り、リストを事前に並べ替える必要はありませんでした。 Gitバージョン2.20以降では、代わりにハッシュ実装が使用されるため、リストを事前に並べ替える必要はありません。
- fsmonitor.allowRemote
-
デフォルトでは、 fsmonitor デーモンはネットワークにマウントされたリポジトリに対する動作を拒否します。
fsmonitor.allowRemote
をtrue
に設定すると、この振る舞いをオーバーライドします。core.fsmonitor
がtrue
に設定されている場合にのみ尊重されます。 - fsmonitor.socketDir
-
この Mac OS 固有のオプションが設定されている場合、 fsmonitor デーモンと、 様々な Git コマンド間の通信に使用される Unix ドメイン・ソケットを作成するディレクトリを指定します。 ディレクトリはネイティブな Mac OS ファイルシステム上に存在する必要があります。
core.fsmonitor
がtrue
に設定されている場合にのみ尊重されます。 - gc.aggressiveDepth
-
git gc --aggressive
で使用されるデルタ圧縮アルゴリズムで使用される深さパラメーター。これはデフォルトで50に設定されています。これは--aggressive
が使用されていない場合の--depth
オプションのデフォルトです。詳細については git-repack(1) の
--depth
オプションの文書を参照してください。 - gc.aggressiveWindow
-
git gc --aggressive
で使用されるデルタ圧縮アルゴリズムで使用されるウィンドウサイズパラメータ。これはデフォルトで250に設定されています。これは、--window
のデフォルト値の10よりもはるかに積極的なウィンドウサイズです。詳細については、 git-repack(1) の
--window
オプションの文書を参照してください。 - gc.auto
-
リポジトリにおおよそ指定の値より多くのルーズオブジェクトがある場合、
git gc --auto
はそれらをパックします。一部の磁器コマンドは、このコマンドを使用して、軽量のガベージコレクションを時々実行します。デフォルト値は6700です。これを0に設定すると、ルーズオブジェクトの数に基づく自動パッキングが無効にななります。また、他のヒューリスティックな
git gc --auto
が、gc.autoPackLimit
などの作業があるかどうかを判断するためにこの値を使用します。 - gc.autoPackLimit
-
リポジトリに
* .keep
ファイルでマークされていないパックがこの設定値より多くある場合、git gc --auto
はそれらを1つの大きなパックに統合します。デフォルト値は50です。これを0に設定すると、無効になります。gc.auto
を0に設定すると、この設定も無効になります。以下の
gc.bigPackThreshold
構成変数を参照してください。この設定を使用中は、自動パックの制限がどのように機能するかに影響します。 - gc.autoDetach
-
システムがサポートしている場合は
git gc --auto
は即座戻り、実行はバックグラウンドで行われます。デフォルトはtrueです。 - gc.bigPackThreshold
-
ゼロ以外の場合、
git gc
の実行時に、この設定値より大きいすべてのパックが保持されます。これは--keep-largest-pack
と非常に似ていますが、最大のパックだけでなく、しきい値を満たす全ての非クラフト・パックが保持される点が異なります。デフォルトはゼロです。k
、m
、g
の一般的な単位接尾辞がサポートされています。注意: 保持されるパックの数が gc.autoPackLimit を超える場合、この構成変数は無視され、基本パックを除くすべてのパックが再パックされることに注意してください。再パック後、パックの数は gc.autoPackLimit を下回り、再び gc.bigPackThreshold が尊重されるでしょう。
git repack
がスムーズに実行されると推定されるメモリ量が利用できず、かつ、gc.bigPackThreshold
が設定されていない場合、最大のパックも除外されます(これは、--keep-largest-pack
を指定してgit gc
を実行するのと同じです)。 - gc.writeCommitGraph
-
trueの場合、 git-gc(1) が実行されると、 gcはcommit-graphファイルを書き換えます。
git gc --auto
を使用する場合、ハウスキーピングが必要な場合はコミットグラフが更新されます。デフォルトはtrueです。詳細については git-commit-graph(1) を参照してください。 - gc.logExpiry
-
ファイルgc.logが存在する場合、
git gc --auto
はそのコンテンツを出力し、そのファイルが「gc.logExpiry」より古い場合を除いて、実行する代わりにステータス0で終了します。デフォルトは「1.day」です。その他の値の指定方法についてはgc.pruneExpire
を参照してください。 - gc.packRefs
-
リポジトリで
git pack-refs
を実行すると、HTTPなどの馬鹿プロトコル(dumb transport) を介して 1.5.1.2 より前のGitバージョンではクローンが作成できなくなります。この変数は、「git gc」が「git pack-refs」を実行するかどうかを決定します。これをnotbare
に設定して、すべての非ベアリポジトリ内で有効にするか、ブール値に設定することができます。 デフォルトはtrue
です。 - gc.cruftPacks
-
到達不能なオブジェクトを緩いオブジェクトとしてではなく、クラフト・パック(cruft pack)(git-repack(1) 参照)に格納します。 デフォルトは
true
です。 - gc.pruneExpire
-
git gc
を実行すると、prune --expire 2.weeks.ago
が呼び出されます(そしてgc.cruftPacks
または--cruft
を介してクラフトパック(cruft packs)を使用している場合は、repack --cruft --cruft-expiration 2.weeks.ago
が呼び出されます)。 この構成変数で猶予期間をオーバーライドします。 値now
を使用してこの猶予期間を無効にし、到達不能なオブジェクトを常にすぐに刈り込み(prune)するか、never
を使用して刈り込みを抑制することができます。この機能はgit gc
が、リポジトリに書き込む別のプロセスと並列実行される場合の破損を防ぐのに役立ちます。 git-gc(1) の「NOTES」セクションを参照してください。 - gc.worktreePruneExpire
-
git gc
が実行されると、git worktree prune --expire3.months.ago
が呼び出されます。この構成変数を使用して、別の猶予期間を設定できます。値「now」を使用して猶予期間を無効にし、$GIT_DIR/worktrees
をすぐに剪定(prune)するか、「never」を使用して剪定を抑制することができます。 - gc.reflogExpire
- gc.<pattern>.reflogExpire
-
「git reflog expire」は、この時間より古いreflogエントリを削除します。デフォルトは90日です。値「now」はすべてのエントリをすぐに期限切れにし、「never」は期限切れを完全に抑制します。中央に「<pattern>」(例:「refs/stash」)がある場合、設定は <pattern> に一致するrefにのみ適用されます。
- gc.reflogExpireUnreachable
- gc.<pattern>.reflogExpireUnreachable
-
git reflog expire
は、この時間より古いreflogエントリを削除し、現在の先端(the current tip)から到達不能にします。デフォルトは30日です。値「now」はすべてのエントリをすぐに期限切れにし、「never」は期限切れを完全に抑制します。中央に「<pattern>」(例:「refs/stash」)がある場合、設定は <pattern> に一致するrefにのみ適用されます。これらのタイプのエントリは通常、
git commit--amend
またはgit rebase
を使用した結果として作成され、修正またはリベースが発生する前のコミットです。これらの変更は現在のプロジェクトの一部ではないため、ほとんどのユーザーはそれらをより早く期限切れにしたいと思うでしょう。そのため、デフォルトはgc.reflogExpire
よりも積極的です。 - gc.recentObjectsHook
-
オブジェクトを削除するかどうかを検討するとき(クラフト・パックを生成するとき、 または到達できないオブジェクトを緩いオブジェクトとして保存するとき)、 指定のコマンドを実行するためにシェルを使用します。 出力は、その古さに関係なく、 Git が "recent" と見なすオブジェクト ID として解釈されます。 mtime を "now" として扱うことにより、 出力に記載されているすべてのオブジェクト(およびその子孫)は、 実際の古さに関係なく保持されます。
出力は、 1 行あたり 16 進オブジェクト ID が 1 つだけ含まれ、 それ以外は何も含まれない必要があります。 リポジトリ内で見つからないオブジェクトは無視されます。 複数のフックがサポートされていますが、 それら全てのフックが正常に終了(exit)する必要があり、 そうでないと、操作(クラフト・パックの生成または到達不能なオブジェクトの解凍)が停止(halt)します。
- gc.rerereResolved
-
以前に解決した競合するマージの記録は、「git rerere gc」が実行されるときに、この設定値で指定の日数保持されます。より人間が読める「1.month.ago」などを使用することもできます。デフォルトは60日です。 git-rerere(1) を参照してください。
- gc.rerereUnresolved
-
git rerere gc
が実行されると、解決していない競合するマージの記録がこの設定値の日数保持されます。より人間が読める `1.month.ago`などを使用することもできます。デフォルトは15日です。 git-rerere(1) を参照してください。 - gitcvs.commitMsgAnnotation
-
この文字列を各コミットメッセージに追加します。この機能を無効にするには、空の文字列に設定します。 デフォルトは "via git-CVS emulator" (git-CVSエミュレーター経由)です。
- gitcvs.enabled
-
このリポジトリに対してCVSサーバー・インターフェースが有効になっているかどうか。 git-cvsserver(1) を参照してください。
- gitcvs.logFile
-
CVS サーバインターフェイスが様々なことを記録するログファイルへのパスです。 git-cvsserver(1) を参照してください。
- gitcvs.usecrlfattr
-
trueの場合、サーバーはファイルの行末変換属性を検索して、使用する
-k
モードを決定します。 属性がGitにファイルをテキストとして処理させる場合、-k
モードは空白(blank)のままになるため、CVSクライアントはファイルをテキストとして処理します。 それらがテキスト変換を抑制する場合、ファイルは-kb
モードで設定されます。これにより、クライアントが他の方法で行う可能性のある改行の変更が抑制されます。 属性でファイルタイプを決定できない場合は、gitcvs.allBinary
が使用されます。 gitattributes(5) を参照してください。 - gitcvs.allBinary
-
これは、
gitcvs.usecrlfattr
が使用する「正しい-kb
モード」(correct -kb mode)で解決しない場合に使用されます。 trueの場合、未解決のファイルはすべてモード-kb
でクライアントに送信されます。 これにより、クライアントはそれらをバイナリファイルとして扱い、改行が変更されないようにします。 または、guess
に設定されている場合は、ファイルの内容が調べられ、core.autocrlf
と同様に、バイナリであるかどうかが判断されます。 - gitcvs.dbName
-
Gitリポジトリから派生したリビジョン情報をキャッシュするためにgit-cvsserverによって使用されるデータベース。 正確な意味は、使用するデータベースドライバーによって異なります。 SQLite(デフォルトのドライバー)の場合、これはファイル名です。 変数の置換をサポートします(詳細については、 git-cvsserver(1) を参照してください)。 セミコロン(
;
)を含めることはできません。 デフォルトは%Ggitcvs.%m.sqlite
です。 - gitcvs.dbDriver
-
使用するPerlDBIドライバー。 ここで使用可能なドライバーを指定できますが、機能しない場合があります。 git-cvsserverは
DBD::SQLite
でテストされています。DBD::Pg で動作するという報告がありますが、 `DBD::mysql
で動作しないことが報告されています。 実験的機能です。 二重コロン(::
)を含めることはできません。 デフォルトはSQLite
です。 git-cvsserver(1) を参照してください。 - gitcvs.dbUser, gitcvs.dbPass
-
データベースのユーザーとパスワード。 SQLiteにはデータベースユーザーやパスワードの概念がないため、
gitcvs.dbDriver
を設定する場合にのみ役立ちます。gitcvs.dbUser
は変数の置換をサポートしています(詳細については git-cvsserver(1) を参照してください)。 - gitcvs.dbTableNamePrefix
-
データベーステーブル名のプレフィックス。 使用されるデータベーステーブルの名前の前に付けられ、単一のデータベースを複数のリポジトリに使用できるようにします。 変数の置換をサポートします(詳細については、 git-cvsserver(1) を参照してください)。 アルファベット以外の文字はすべてアンダースコアに置き換えられます。
gitcvs.usecrlfattr
と gitcvs.allBinary
を除くすべてのgitcvs変数は、 gitcvs.<access_method>.<varname>
(access_method
は "ext" と "pserver" のいずれか)として指定することもできます。それらは、指定のアクセス方法(<access_method>
)にのみ適用されます。
- 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-strings
または--perl-regexp
オプションが有効になります。 値default
はgrep.extendedRegexp
オプションを使用してbasic
とextended
のどちらかを選択します。 - grep.extendedRegexp
-
trueに設定されている場合、デフォルトで
--extended-regexp
オプションを有効にします。grep.patternType
オプションがdefault
以外の値に設定されている場合、このオプションは無視されます。 - grep.threads
-
使用する grep ワーカー・スレッドの数。 設定しない場合(または 0 に設定した場合)、 Git は使用可能な論理コアの数と同じ数のスレッドを使用します。
- grep.fullName
-
trueに設定すると、デフォルトで
--full-name
オプションが有効になります。 - grep.fallbackToNoIndex
-
trueに設定すると、
git grep
がgitリポジトリの外部で実行される場合は、git grep --no-index
にフォールバックします。 デフォルトはfalseです。 - gpg.program
-
PGP署名を作成または検証するときは、
$PATH
にあるgpg
の代わりにこのカスタムプログラムを使用します。 プログラムはGPGと同じコマンドラインインターフェイスをサポートする必要があります。つまり、切り離された署名(detached signature)を検証するには、gpg --verify $signature - <$file
が実行され、 プログラムは、コード0で終了することにより、適切な署名を通知することが期待されます。PGP ASCII-armor の分離署名(ASCII-armored detached signature)を生成するために、gpg -bsau $key
の標準入力には、署名する内容が入力され、プログラムはその結果を標準出力に送信することが期待されています。 - gpg.format
-
--gpg-sign
で署名するときに使用するキー形式を指定します。 デフォルトはopenpgp
です。 別の可能な値はx509
とssh
です。署名形式(signature format)については gitformat-signature(5) を参照してください。 署名形式は選択した
gpg.format
によって異なります。 - gpg.<format>.program
-
これを使用して、選択した署名形式に使用されるプログラムをカスタマイズします。 (
gpg.program
とgpg.format
参照)gpg.program
は、gpg.openpgp.program
の歴史的同義語として引き続き使用できます。gpg.x509.program
のデフォルト値はgpgsm
で、gpg.ssh.program
のデフォルト値はssh-keygen
です。 - gpg.minTrustLevel
-
署名検証(signature verification)の最小信頼(trust)レベルを指定します。 このオプションが設定されていない場合、マージ操作の署名検証には、少なくとも
marginal
信頼(trust)のあるキーが必要です。 署名の検証を実行する他の操作には、少なくともundefined
の信頼を持つキーが必要です。 このオプションを設定すると、すべての操作に必要な信頼レベルが上書きされます。 サポートされている値は以下のとおりです(重要度の昇順):-
undefined
-
never
-
marginal
-
fully
-
ultimate
-
- gpg.ssh.defaultKeyCommand
-
このコマンドは、
user.signingkey
が設定されておらず、かつ、 ssh 署名が要求されたときに実行されます。 正常に終了すると、出力の最初の行にkey::
で始まる有効な ssh 公開鍵あるものと期待します。 これにより、user.signingKey
を静的に構成することが実際的でない場合に、スクリプトが正しい公開鍵を動的に検索(lookup)できるようになります。 これはたとえば、キーまたは SSH 証明書が頻繁にローテーションされる場合や、適切なキーの選択が git にとって未知の外部要因に依存する場合などです。 - gpg.ssh.allowedSignersFile
-
信頼できる ssh 公開鍵を含むファイル。 このファイルは、1行以上のプリンシパル(principals)とそれに続く ssh 公開鍵で構成されます。 例:
user1@example.com,user2@example.com ssh-rsa AAAAX1...
詳細については、 ssh-keygen(1) の「ALLOWED SIGNERS」を参照してください。 プリンシパル(principal)は、キーを識別するためにのみ使用され、署名を検証(verify)するときに使用できます。SSH には、gpg のような信頼レベル(trust levels)の概念がありません。 有効な署名(valid signatures)と信頼できる署名(trusted signatures)を区別できるようにするために、 allowedSignersFile に公開鍵が存在する場合、署名検証の信頼レベルは
fully
に設定されます。 それ以外の場合、信頼レベルはundefined
であり、git verify-commit/tag は失敗します。このファイルはリポジトリ外の場所に設定でき、すべての開発者が独自の信頼ストア(trust store)を維持します。 中央リポジトリ・サーバーは、コードを検証するためのプッシュ・アクセスを使用して、ssh キーからこのファイルを自動的に生成できます。 おそらく、企業の設定では、このファイルは、開発者の ssh キーを既に処理している自動化によってグローバルな場所に生成されます。
署名付きコミットのみを許可するリポジトリは、作業ツリーの最上位からの相対パスを使用して、リポジトリ自体にファイルを保存できます。 このようにして、すでに有効なキーを持つコミッターのみが、キーリングのキーを追加または変更できます。
OpensSSH 8.8 以降、このファイルでは、valid-after および valid-before オプションを使用してキーの有効期間を指定できます。 署名の作成時に署名キーが有効であった場合、Git は署名を有効としてマークします。 これにより、ユーザーは以前に作成されたすべての署名を無効にすることなく、署名キーを変更できます。
cert-authority オプション (ssh-keygen(1) の「CERTIFICATES」を参照) を指定した SSH CA 鍵の使用も有効です。
- gpg.ssh.revocationFile
-
SSH KRL または取り消された公開鍵のリスト(プリンシパル(principal)プレフィックスなし)。 詳細については、 ssh-keygen(1) を参照してください。 公開鍵がこのファイルで見つかった場合、その公開鍵は常に信頼レベル
never
として扱われ、署名は無効として表示されます。 - gui.commitMsgWidth
-
git-gui(1) のコミットメッセージウィンドウの幅を定義します。 「75」がデフォルトです。
- gui.diffContext
-
git-gui(1) によるdiffの呼び出しで使用するコンテキスト行の数を指定します。 デフォルトは「5」です。
- gui.displayUntracked
-
git-gui(1) がファイルリストに追跡されていないファイルを表示するかどうかを決定します。 デフォルトは「true」です。
- gui.encoding
-
git-gui(1) および gitk(1) でファイルの内容を表示するために使用するデフォルトの文字エンコードを指定します。 関連するファイルの「encoding」属性を設定することでオーバーライドできます(gitattributes(5) 参照)。 このオプションが設定されていない場合、ツールはデフォルトでロケールエンコーディングになります。
- gui.matchTrackingBranch
-
git-gui(1) で作成された新しいブランチが、デフォルトで名前が一致するリモートブランチを追跡するかどうかを決定します。 デフォルトは「false」です。
- gui.newBranchTemplate
-
git-gui(1) を使用して新しいブランチを作成するときに、推奨される名前として使用されます。
- gui.pruneDuringFetch
-
git-gui(1) がフェッチの実行時にリモート追跡ブランチを刈り込み(prune)する必要がある場合は「true」。 デフォルト値は「false」です。
- gui.trustmtime
-
git-gui(1) がファイル変更のタイムスタンプを信頼するかどうかを決定します。 デフォルトでは、タイムスタンプは信頼されていません。
- gui.spellingDictionary
-
git-gui(1) でコミットメッセージのスペルチェックに使用される辞書を指定します。「none」に設定すると、スペルチェックがオフになります。
- gui.fastCopyBlame
-
trueの場合、
git gui blame
は、元の場所(original location)の検出に-C -C
ではなく-C
を使用します。 コピーの検出が完全ではなくなる代わりに、巨大なリポジトリでのblameが大幅に速くなります。 - gui.copyBlameThreshold
-
英数字(alphanumeric)文字で測定された、
git gui blame
の元の位置(original location)検出で使用するしきい値を指定します。 コピー検出の詳細については、 git-blame(1) のマニュアルを参照してください。 - gui.blamehistoryctx
-
「Show History Context」(履歴コンテキストの表示)メニュー項目が
git gui blame
から呼び出されたときに、選択したコミットの gitk(1) に表示する履歴コンテキストの範囲を日数で指定します。 この変数がゼロに設定されている場合、履歴全体が表示されます。 - guitool.<name>.cmd
-
git-gui(1) Toolsメニューの対応する項目が呼び出されたときに実行するシェルコマンドラインを指定します。 このオプションは、すべてのツールに必須です。 コマンドは作業ディレクトリのルートから実行され、環境ではツールの名前を
GIT_GUITOOL
、現在選択されているファイルの名前をFILENAME
、現在のブランチの名前をCUR_BRANCH
として受け取ります(切り離されたヘッド(detached head)の場合、CUR_BRANCH
は空です)。 - guitool.<name>.needsFile
-
GUIでdiffが選択されている場合にのみ、ツールを実行します。
FILENAME
が空でないことを保証します。 - guitool.<name>.noConsole
-
出力を表示するウィンドウを作成せずに、コマンドを黙って実行します。
- guitool.<name>.noRescan
-
ツールの実行が終了した後、変更がないか作業ディレクトリを再スキャンしないでください。
- guitool.<name>.confirm
-
ツールを実際に実行する前に、確認ダイアログを表示します。
- guitool.<name>.argPrompt
-
ユーザーに文字列引数を要求し、それを
ARGS
環境変数を介してツールに渡します。 引数の要求は確認を意味するため、これが有効になっている場合、「confirm」オプションは効果がありません。 オプションがtrue
またはyes
または 1 に設定されている場合、ダイアログは組み込みの汎用プロンプトを使用します。 それ以外の場合は、変数の正確な値が使用されます。 - guitool.<name>.revPrompt
-
ユーザーに有効なリビジョンを1つ要求し、
REVISION
環境変数を設定します。 それ以外はargPrompt
と同様です。argPrompt
と一緒に使用できます。 - guitool.<name>.revUnmerged
-
revPrompt
サブダイアログにマージされていないブランチのみを表示します。 これは、マージやリベースに似たツールには役立ちますが、チェックアウトやリセットなどには役立ちません。 - guitool.<name>.title
-
プロンプトダイアログに使用するタイトルを指定します。 デフォルトはツール名です。
- guitool.<name>.prompt
-
ダイアログの上部、
argPrompt
およびrevPrompt
のサブセクションの前に表示する一般的なプロンプト文字列を指定します。 デフォルト値には実際のコマンドが含まれます。 - help.browser
-
ヘルプをweb形式で表示するために使用されるブラウザーを指定します。 git-help(1) を参照してください。
- help.format
-
git-help(1) で使用されるデフォルトのヘルプ形式を上書きします。 値として
man
とinfo
とweb
とhtml
がサポートされています。man
がデフォルトです。web
とhtml
は同じ(same)です。 - help.autoCorrect
-
gitがタイプミスを検出し、間違いにに類似した有効なコマンドを1つだけ識別できる場合、gitは正しいコマンドを提案しようとするか、提案を自動的に実行します。 可能な構成値は以下のとおりです:
-
0 (デフォルト): 提案されたコマンドを表示します。
-
正の数: 指定されたデシ秒単位(0.1秒単位)の秒数後に提案されたコマンドを実行します。
-
"immediate": 提案されたコマンドを即座に実行します。
-
"prompt": コマンドを実行するための提案と確認のプロンプトを表示します。
-
"never": 提案されたコマンドを実行も表示もしないでください。
-
- help.htmlPath
-
HTMLドキュメントが存在するパスを指定します。 ファイルシステムのパスとURLがサポートされています。 ヘルプが「web」形式で表示される場合、HTMLページの前にこのパスが付けられます。 これはデフォルトでGitインストールのドキュメントパスになります。
- http.proxy
-
通常は
http_proxy
やhttps_proxy
やall_proxy
環境変数を使用して構成されたHTTPプロキシをオーバーライドします(curl(1) 参照)。 curlが理解できる構文に加えて、ユーザー名はパスワードなしでプロキシ文字列を指定でき、その場合、gitは他の資格情報の場合と同じ方法でプロキシ文字列を取得しようとします。 詳細については、 gitcredentials(7) を参照してください。 構文は[protocol://][user[:password]@]proxyhost[:port]
です。 これは、リモートごとにオーバーライドできます。 remote.<name>.proxy を参照してください - http.proxyAuthMethod
-
HTTPプロキシに対して認証する方法を設定します。 これは、構成されたプロキシ文字列にユーザー名の部分が含まれている場合にのみ有効になります(つまり、
user@host
またはuser@host:port
形式)。 これは、リモートごとにオーバーライドできます。remote.<name>.proxyAuthMethod
を参照してください。 どちらもGIT_HTTP_PROXY_AUTHMETHOD
環境変数でオーバーライドできます。 可能な値は以下のとおりです:-
anyauth
- 適切な認証方法を自動的に選択します。 プロキシは、407ステータスコードとサポートされている認証方法を使用した1つ以上のProxy-authenticateヘッダーを使用して、認証されていない要求に応答すると想定されます。 これがデフォルトです。 -
basic
- HTTPベーシック認証 -
digest
- HTTPダイジェスト認証。これにより、パスワードがクリアテキストでプロキシに送信されるのを防ぎます -
negotiate
- GSSネゴシエーション認証(curl(1)
の--negotiate
オプションと比較してください) -
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
-
ユーザー名またはパスワードを求めずに認証を試みます。 libcurlは通常、認証にユーザー名を必要とするため、これを使用して、URLにユーザー名を指定せずにGSS-Negotiate認証を試みることができます。
- http.delegation
-
GSSAPI資格情報の委任を制御します。 バージョン7.21.7以降、libcurlでは委任がデフォルトで無効になっています。 ユーザー資格情報に関して、何を委任できるかをサーバーに通知するパラメーターを設定します。 GSS/kerberosで使用されます。 可能な値は以下のとおりです:
-
none
- 委任を許可しないでください。 -
policy
- OK-AS-DELEGATE フラグが Kerberos サービスチケットに設定されている場合にのみ委任します。これはレルムポリシー(realm policy)の問題です。 -
always
- サーバーが無条件に委任できるようにします。
-
- http.extraHeader
-
サーバーと通信するときに追加のHTTPヘッダーを渡します。 そのようなエントリが複数存在する場合は、それらすべてが追加のヘッダーとして追加されます。 システム構成から継承された設定をオーバーライドできるようにするには、値を空にすると、余分なヘッダーが空のリストにリセットされます。
- http.cookieFile
-
以前に保存されたクッキー行を含むファイルのパス名。サーバーと一致する場合はGit httpセッションで使用する必要があります。 クッキーを読み取るファイルのファイル形式は、プレーンHTTPヘッダーまたは、Netscape/Mozilla クッキーファイル形式である必要があります(curl(1) 参照)。 注意:
http.saveCookies
が設定されていない限り、http.cookieFile
で指定されたファイルは入力としてのみ使用されることに注意してください。 - http.saveCookies
-
設定されている場合、リクエスト中に受信したクッキーを http.cookieFile で指定されたファイルに保存します。 http.cookieFile が設定されていない場合は効果がありません。
- http.version
-
サーバーと通信するときは、指定されたHTTPプロトコルバージョンを使用してください。 デフォルトを強制する場合、使用可能なデフォルトバージョンはlibcurlによって異なります。 現在、このオプションの可能な値は以下のとおりです:
-
HTTP/2
-
HTTP/1.1
-
- http.curloptResolve
-
HTTP リクエストの送信時に libcurl が最初に使用するホスト名解決情報。 この情報は、以下のいずれかの形式である必要があります:
-
[+]HOST:PORT:ADDRESS[,ADDRESS]
-
-HOST:PORT
最初の形式は、指定された
HOST:PORT
へのすべてのリクエストを、指定されたADDRESS
にリダイレクトします。 2 番目の形式は、そのHOST:PORT
の組み合わせの以前の設定値をすべてクリアします。 システム構成から継承されたすべての設定を簡単に上書きできるようにするために、空の値はすべての解決情報を空のリストにリセットします。 -
- 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をフェッチまたはプッシュするときにピア(peer)を検証(verify)するための証明書を含むファイル。
GIT_SSL_CAINFO
環境変数でオーバーライドできます。 - http.sslCAPath
-
HTTPSをフェッチまたはプッシュするときにピア(peer)を検証(verify)するためのCA証明書を含むファイルを含むパス。
GIT_SSL_CAPATH
環境変数で上書きできます。 - http.sslBackend
-
使用するSSLバックエンドの名前(例:
openssl
またはschannel
)。 cURLが実行時にSSLバックエンドを選択するためのサポートを欠いている場合、このオプションは無視されます。 - http.schannelCheckRevoke
-
http.sslBackend
がschannel
に設定されている場合にcURLで証明書失効チェックを実施または無効にするために使用されます。 設定されていない場合、デフォルトはtrue
です。 Gitが一貫してエラーを出し、メッセージが証明書の失効ステータスの確認に関するものである場合にのみ、これを無効にする必要があります。 cURLが実行時に関連するSSLオプションを設定するためのサポートを欠いている場合、このオプションは無視されます。 - http.schannelUseSSLCAInfo
-
cURL v7.60.0以降、セキュリティで保護されたチャネルのバックエンドは
http.sslCAInfo
を介して提供される証明書バンドルを使用できますが、これによりWindows証明書ストアが上書きされます。 これはデフォルトでは望ましくないため、http.schannelUseSSLCAInfo
がこの動作をオーバーライドしない限り、schannel
バックエンドがhttp.sslBackend
を介して構成されている場合、Gitはデフォルトでそのバンドルを使用しないようにcURLに指示します。 - 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: チャンクが使用され、ローカルで大規模なパックファイルが作成されるのを防ぎます。 デフォルトは1MiBで、ほとんどのリクエストでは十分です。
この制限を引き上げることは、チャンク転送エンコーディングを無効にする場合にのみ有効であるため、リモートサーバーまたはプロキシが HTTP/1.0 のみをサポートするか、HTTP標準に準拠していない場合にのみ使用する必要があることに注意してください。 この制限を引き上げることは、一般に、ほとんどのプッシュの問題に対して効果的な解決策ではありませんが、小さなプッシュに対してもバッファー全体が割り当てられるため、メモリー消費を大幅に増やす可能性があります。
- http.lowSpeedLimit, http.lowSpeedTime
-
HTTP転送速度(バイト/秒)が
http.lowSpeedLimit
未満の状態がhttp.lowSpeedTime
秒を超えると、 転送は中断(abort)されます。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/1.7.1などのクライアントGitのバージョンを表します。 このオプションを使用すると、この値を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をフォローアップリクエストのベースとして使用するため、通常はこれで十分です。 デフォルトはinitial
です。 - http.<url>.*
-
上記の
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
のuser
の部分)。 構成キーにユーザー名がある場合は、URLのユーザー名と正確に一致する必要があります。 構成キーにユーザー名がない場合、その構成キーは任意のユーザー名(ユーザー名無しを含む)のURLと一致しますが、ユーザー名の構成キーよりも優先順位は低くなります。
上記のリストは、優先順位の高い順に並べられています。 構成キーのパスに一致するURLは、そのユーザー名に一致するURLよりも優先されます。 例えば、URLが
https://user@example.com/foo/bar
の場合、https://user@example.com
の設定キーの一致よりもhttps://example.com/foo
の設定キーの一致が優先されます。すべてのURLは、照合を試みる前に正規化されます(パスワード部分がURLに埋め込まれている場合、照合目的では常に無視されます)。これにより、スペルが異なる同等のURLが正しく照合されます。 環境変数の設定は、常に一致を上書きします。 照合されるURLは、Gitコマンドに直接指定されたURLです。 これは、リダイレクトの結果としてアクセスされたURLがマッチングに参加しないことを意味します。
-
- i18n.commitEncoding
-
コミットメッセージの文字エンコーディングは保存されます。 Gitそれ自体は気にしませんが、この情報は必要です。 例えば、電子メールまたはgitkグラフィカル履歴ブラウザーからコミットをインポートする場合(そしておそらく将来の他の場所や他の磁器コマンドでも)です。例として linkgit:git-mailinfo[1] を参照してください。 デフォルトは
utf-8
です。 - i18n.logOutputEncoding
-
コミットメッセージの文字エンコーディングは、
git log
やその仲間を実行するときに変換されます。 - imap.folder
-
メールをドロップするフォルダー。通常はドラフトフォルダーです。 例:「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:// ホストの場合は143、 imaps:// ホストの場合は993です。 imap.tunnel が設定されている場合は無視されます。
- imap.sslverify
-
SSL/TLS接続で使用されるサーバー証明書の検証を有効/無効にするブール値。デフォルトは
true
です。 imap.tunnel が設定されている場合は無視されます。 - imap.preformattedHTML
-
パッチを送信するときにhtmlエンコーディングの使用を有効/無効にするブール値。 htmlでエンコードされたパッチは <pre> で囲まれ、コンテンツタイプは text/html になります。皮肉なことに、このオプションを有効にすると、Thunderbirdはパッチを plane/text の format=fixed メールとして送信します。デフォルトは
false
です。 - imap.authMethod
-
IMAPサーバーでの認証の認証方法を指定します。GitがNO_CURLオプションを使用してビルドされた場合、curlバージョンが7.34.0より古い場合、またはgit-imap-sendを
--no-curl
オプションを指定して実行している場合、サポートされるメソッドは CRAM-MD5 のみです。これが設定されていない場合、「git imap-send」は基本的なIMAPプレーンテキストLOGINコマンドを使用します。 - include.path
- includeIf.<condition>.path
-
他の構成ファイルをインクルードするための特別な変数。 git-config(1) ドキュメントの「CONFIGURATION FILE」セクション、特に「Includes」および「Conditional includes」サブセクションを参照してください。
- index.recordEndOfIndexEntries
-
インデックスファイルに「End Of Index Entry」セクションを含めるかどうかを指定します。 これにより、マルチプロセッサマシンでのインデックスの読み込み時間が短縮されますが、2.20より前のバージョンのGitを使用してインデックスを読み取ると、「ignoring EOIE extension」というメッセージが表示されます。 index.threads が明示的に有効になっている場合はデフォルトで
true
、それ以外の場合はfalse
になります。 - index.recordOffsetTable
-
インデックスファイルに「Index Entry Offset Table」セクションを含めるかどうかを指定します。 これにより、マルチプロセッサマシンでのインデックスの読み込み時間が短縮されますが、2.20より前のバージョンのGitを使用してインデックスを読み取ると、「ignoring IEOT extension」というメッセージが表示されます。 index.threadsが明示的に有効になっている場合はデフォルトで
true
、それ以外の場合はfalse
になります。 - index.sparse
-
有効にすると、sparse-directory エントリを使用してインデックスを書き込みます。
core.sparseCheckout
とcore.sparseCheckoutCone
の両方が有効になっていない限り、これは効果がありません。 デフォルトはfalse
です。 - index.threads
-
インデックスをロードするときに生成するスレッドの数を指定します。 これは、マルチプロセッサマシンでのインデックスのロード時間を短縮することを目的としています。 0または
true
を指定すると、GitはCPUの数を自動検出し、それに応じてスレッドの数を設定します。 1または false を指定すると、マルチスレッドが無効になります。 デフォルトはtrue
です。 - index.version
-
新しいインデックスファイルを初期化するバージョンを指定します。 これは既存のリポジトリには影響しません。
feature.manyFiles
が有効になっている場合、デフォルトは4です。 - index.skipHash
-
有効にすると、 インデックス・ファイルの末尾ハッシュを計算しません。 これにより、
git add
またはgit commit
またはgit status
などのインデックスを操作する Git コマンドが高速化されます。 チェックサムを保存する代わりに、 値 0 の末尾のバイト・セットを書き込み、 計算がスキップされたことを示します。index.skipHash
を有効にすると、 2.13.0 より古い Git クライアントはインデックスのパースを拒否し、 2.40.0 より古い Git クライアントはgit fsck
中にエラーを報告します。 - init.templateDir
-
テンプレートのコピー元のディレクトリを指定します。 (git-init(1) の「TEMPLATE DIRECTORY」セクションを参照してください。)
- init.defaultBranch
-
デフォルトのブランチ名を上書きできます。例えば、新しいリポジトリを初期化するとき。
- instaweb.browser
-
gitwebであなたの作業リポジトリをブラウズするために使用されるプログラムを指定します。 git-instaweb(1) を参照してください。
- instaweb.httpd
-
あなたの作業リポジトリでgitwebを起動するためのHTTPデーモンコマンドライン。 git-instaweb(1) を参照してください。
- instaweb.local
-
trueの場合、 git-instaweb(1) によって起動されたWebサーバーはローカルIP(local IP)(127.0.0.1)にバインドされます。
- instaweb.modulePath
-
/usr/lib/apache2/modules
の代わりに使用する git-instaweb(1) のデフォルトのモジュールパス。httpdがApacheの場合にのみ使用されます。 - instaweb.port
-
gitweb httpdをバインドするポート番号。 git-instaweb(1) を参照してください。
- interactive.singleKey
-
対話コマンドでは、ユーザーが1つのキーで1文字の入力を提供できるようにします(つまり、Enterキーを押さずに)。 現在、これは git-add(1) と git-checkout(1) と git-restore(1) と git-commit(1) と git-reset(1) と git-stash(1) の
--patch
モードで使用されています。 ポータブルキーストローク入力(portable keystroke input)が利用できない場合、この設定は黙って無視されることに注意してください。 Perlモジュール Term::ReadKey が必要です。 - interactive.diffFilter
-
対話コマンド(
git add --patch
など)が色付きのdiffを表示すると、gitはこの構成変数で定義されたシェルコマンドを介してdiffをパイプします。 コマンドは、元のdiffの行と1対1の対応を保持している場合、人間に読みやすいようにdiffをさらにマークアップできます。 デフォルトは無効(フィルタリングなし)です。 - log.abbrevCommit
-
trueの場合、 linkgit:git-log [1] と git-show(1) と git-whatchanged(1) に
--abbrev-commit
を想定させます。 このオプションは--no-abbrev-commit
で上書きできます。 - log.date
-
log
コマンドのデフォルトの日時モードを設定します。 log.dateの値の設定は、git log
の--date
オプションと同様です。 詳細については、 git-log(1) を参照してください。形式が
auto:foo
に設定されていて、ページャーが使用されている場合、形式foo
が日付形式に使用されます。 それ以外の場合は、default
が使用されます。 - log.decorate
-
logコマンドで表示されるコミットのref名を出力します。
short
が指定されている場合、ref名の接頭辞refs/heads/
とrefs/tags/
とrefs/remotes/
は出力されません。full
が指定されている場合、完全なref名(接頭辞を含む)が出力されます。auto
が指定されている場合、出力が端末に送られる場合、ref名はshort
が指定されているかのように表示されます。それ以外の場合、ref名は表示されません。 これは、git log
の--decorate
オプションと同じです。 - log.initialDecorationSet
-
デフォルトでは、
git log
は特定の既知の ref 名前空間の装飾(decorations)のみを表示します。all
が指定されている場合は、すべてのrefを装飾として表示します。 - log.excludeDecoration
-
ログ装飾(log decorations)から指定されたパターンを除外します。 これは
--decorate-refs-exclude
コマンドラインオプションに似ていますが、構成オプションは--decorate-refs
オプションで上書きできます。 - log.diffMerges
-
--diff-merges=on
が指定されたときに使用される diff 形式を設定します。 詳細については、git-log(1) の--diff-merges
を参照してください。 デフォルトはseparate
です。 - log.follow
-
true
の場合、git log
は、単一の<path>が指定されたときに--follow
オプションが使用されたかのように機能します。 これには--follow
と同じ制限があります。つまり、複数のファイルを追跡するために使用することはできず、非線形履歴ではうまく機能しません。 - log.graphColors
-
git log --graph
で履歴線(history lines)を描画するために使用できる、コンマで区切られた色のリスト。 - log.showRoot
-
trueの場合、最初のコミットは大きな作成イベントとして表示されます。 これは、空のツリーに対するdiffに相当します。 git-log(1) や git-whatchanged(1) などのツールは、通常はルートコミットを隠していますが、今後は表示されるようになります。 デフォルトでは True です。
- 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
を想定させ、それ以外の場合は--no-use-mailmap
を想定させます。 デフォルトではtrueです。 - lsrefs.unborn
-
advertise
(デフォルト)またはallow
またはignore
の場合があります。advertise`の場合、サーバーは `unborn
(gitprotocol-v2(5) 説明があります)を送信するクライアントに応答し、プロトコルv2機能の広告(advertise)中にこの機能のサポートを広告します。allow
はadvertise`と同一ですが、サーバーがこの機能のサポートを広告しない点が異なります。 これは、管理者が `allow
を構成し、遅れてadvertise
を構成できるため、(たとえば、)アトミックに更新できない負荷分散サーバーに役立ちます。 - mailinfo.scissors
-
trueの場合、 git-mailinfo(1) (それゆえ git-am(1) も)は、コマンドラインで
--scissors
オプションが指定されているかのようにデフォルトで動作します。この機能がアクティブな場合、メッセージ本文から切り取り線(つまり、主に ">8" や "8<" や "-" で構成される)行とそれより前のすべてを削除します。 - mailmap.file
-
拡張メールマップファイルの場所。リポジトリのルートにあるデフォルトのメールマップが最初にロードされ、次にこの変数が指すメールマップファイルがロードされます。メールマップファイルの場所は、リポジトリサブディレクトリ内、またはリポジトリの外部のどこかにあります。 git-shortlog(1) と git-blame(1) を参照してください。
- mailmap.blob
-
mailmap.file
と同様ですが、値をリポジトリ内のブロブへの参照と見なします。mailmap.file
とmailmap.blob
の両方が指定されている場合、両方が解析され、mailmap.file
からのエントリが優先されます。この変数は、ベアリポジトリではデフォルトでHEAD:.mailmap
になります。非ベアリポジトリでは、デフォルトで空になります。 - maintenance.auto
-
このブール構成オプションは、一部のコマンドが通常の作業を行った後に
git maintenance run --auto
を実行するかどうかを制御します。 デフォルトはtrueです。 - maintenance.strategy
-
この文字列設定オプションは、バックグラウンドメンテナンスのいくつかの推奨スケジュールの1つを指定する方法を提供します。 これは、
--task=<task>
引数が指定されていない場合、git maintenance run --schedule=X
コマンド中に実行されるタスクにのみ影響します。 さらに、maintenance.<task>.schedule
構成値が設定されている場合、maintenance.strategy
によって提供される値の代わりにその値が使用されます。 戦略として指定可能な文字列は以下のとおりです:-
none
: このデフォルト設定は、どのスケジュールでもタスクが実行されないことを意味します。 -
incremental
: この設定は、データを削除しない小さなメンテナンスアクティビティの実行に最適化されています。 これはgc
タスクをスケジュールしませんが、prefetch
およびcommit-graph
タスクを1時間ごとに実行し、loose-objects
およびincremental-repack
タスクを毎日実行し、pack-refs
タスクを毎週実行します。
-
- maintenance.<task>.enabled
-
このブール構成オプションは、
git maintenance run
に--task
オプションが指定されていない場合に、<task>
という名前のメンテナンスタスクを実行するかどうかを制御します。--task
オプションが存在する場合、これらの構成値は無視されます。 デフォルトでは、maintenance.gc.enabled
のみがtrueです。 - maintenance.<task>.schedule
-
この設定オプションは、指定された
<task>
がgit maintenance run --schedule=<frequency>
コマンド中に実行されるかどうかを制御します。 値は、 "hourly", "daily", "weekly" のいずれかである必要があります。 - maintenance.commit-graph.auto
-
この整数値構成オプションは、
git maintenance run --auto
の一部としてcommit-graph
タスクを実行する頻度を制御します。 ゼロの場合、commit-graph
タスクは`--auto` オプションで実行されません。負の値を指定すると、タスクは毎回実行されます。 それ以外の場合、正の値は、commit-graphファイルにない到達可能なコミットの数がmaintenance.commit-graph.auto
の値以上であるときにコマンドを実行する必要があることを意味します。デフォルト値は100です。 - maintenance.loose-objects.auto
-
この整数値構成オプションは、
git maintenance run --auto
の一部としてloose-objects
タスクを実行する頻度を制御します。 ゼロの場合、loose-objects
タスクは--auto
オプションでは実行されません。 負の値を指定すると、タスクは毎回実行されます。 それ以外の場合、正の値は、緩いオブジェクト(loose objects)の数がmaintenance.loose-objects.auto
の値以上であるときにコマンドを実行する必要があることを意味します。 デフォルト値は100です。 - maintenance.incremental-repack.auto
-
この整数値構成オプションは、
git maintenance run --auto
の一部としてincremental-repack
タスクを実行する頻度を制御します。 ゼロの場合、incremental-repack
タスクは--auto
オプションでは実行されません。 負の値を指定すると、タスクは毎回実行されます。 それ以外の場合、正の値は、multi-pack-indexにないpack-fileの数がmaintenance.incremental-repack.auto
の値以上であるときにコマンドを実行する必要があることを意味します。 デフォルト値は10です。 - man.viewer
-
ヘルプを
man
形式で表示するために使用できるプログラムを指定します。 git-help(1) を参照してください。 - man.<tool>.cmd
-
指定されたmanビューア(<tool>)を呼び出すコマンドを指定します。指定されたコマンドは、引数として渡されたマニュアルページを使用してシェルで評価されます。(git-help(1) を参照してください。)
- man.<tool>.path
-
man
形式でヘルプを表示するために使用される可能性のある特定のツール(<tool>)のパスをオーバーライドします。 git-help(1) を参照してください。 - merge.conflictStyle
-
マージ時に競合するハンクが作業ツリーファイルに書き出されるスタイルを指定します。 デフォルトは
merge`です。これは、 `<<<<<<<
競合マーカー、一方の側で行われた変更、=======
マーカー、もう一方の側で行われた変更、そして>>>>>>>
マーカーというスタイルです。 別のスタイル「diff3」は、|||||||
マーカーと元のテキストを=======
マーカーの前に追加します。merge
スタイルは、元のテキストの除外と、行のサブセットが、両側で一致する場合に競合領域から引き抜かれるため、diff3
よりも小さな競合領域を生成する傾向があります。 もう 1 つの代替スタイルzdiff3
はdiff3
に似ていますが、 両側で一致する行が競合領域の開始または最後近くに現れる場合、競合領域から削除します。 - merge.defaultToUpstream
-
コミット引数なしでmergeが呼び出された場合は、リモート追跡ブランチに格納されている最後に観測された値を使用して、現在のブランチ用に構成されたアップストリームブランチをマージします。
branch.<currentbranch>.remote
によって指定されたリモートのブランチに名前を付けるbranch.<currentbranch>.merge
の値が参照され、次に、それらはremote.<remote>.fetch
を介して対応するリモート追跡ブランチにマッピングされ、そして、これらの追跡ブランチの先端がマージされます。 デフォルトはtrueです。 - merge.ff
-
デフォルトでは、Gitは、現在のコミットの子孫であるコミットをマージするときに、追加のマージコミットを作成しません。 代わりに、現在のブランチの先端が早送り(fast-forward)されます。
false
に設定すると、この変数はGitにそのような場合に追加のマージコミットを作成するように指示します(コマンドラインから--no-ff
オプションを指定するのと同じです)。only
に設定すると、そのような早送りマージのみが許可されます(コマンドラインから--ff-only
オプションを指定するのと同じです)。 - merge.verifySignatures
-
trueの場合、これは
--verify-signatures
コマンドラインオプションと同等です。 詳細については、 git-merge(1) を参照してください。 - merge.branchdesc
-
ブランチ名に加えて、それらに関連付けられたブランチの説明テキストをログメッセージに入力します。デフォルトはfalseです。
- merge.log
-
ブランチ名に加えて、マージされる実際のコミットからの最大「指定の数」の親コミットの1行説明をログメッセージに入力します。デフォルトはfalseで、trueは20の同義語です。
- merge.suppressDest
-
統合ブランチの名前に一致するグロブをこの複数値の構成変数(multi-valued configuration variable)に追加することにより、これらの統合ブランチへのマージに対して計算されるデフォルトのマージメッセージは、タイトルから「into <branch name>」を省略します。
空の値を持つ要素を使用して、以前の構成エントリから蓄積されたグロブのリストをクリアできます。
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
に設定すると、ディレクトリの名前変更検出が有効になり、そのような新しいファイルは新しいディレクトリに移動されることを意味します。conflict
に設定すると、そのようなパスに対して競合が報告されます。 merge.renames が false の場合、merge.directoryRenames は無視され、false として扱われます。 デフォルトはconflict
です。 - merge.renormalize
-
リポジトリ内のファイルの標準の表現が時間の経過とともに変更されたことをGitに伝えます(たとえば、以前はCRLF行末のレコードテキストファイルをコミットしていましたが、最近のファイルはLF行末を使用している)。 このようなリポジトリでは、Gitは、不必要な競合を減らすために、マージを実行する前に、コミットに記録されたデータを標準形式に変換できます。 詳細については、gitattributes(5) の「Merging branches with differing checkin/checkout attributes」(チェックイン/チェックアウト属性が異なるブランチのマージ)のセクションを参照してください。
- merge.stat
-
マージの最後にORIG_HEADとマージ結果の間のdiffstatを出力するかどうか。 デフォルトではtrue。
- merge.autoStash
-
trueに設定すると、操作を開始する前に一時的なstashエントリを自動的に作成し、操作の終了後に適用します。 これは、ダーティ作業ツリーでマージを実行できることを意味します。 ただし、注意して使用してください。マージが成功した後の最後のstashアプリケーションは、重要な競合を引き起こす可能性があります。 このオプションは、 git-merge(1)の
--no-autostash
および--autostash
オプションでオーバーライドできます。 デフォルトはfalseです。 - merge.tool
-
git-mergetool(1) が使用するマージツールを制御します。 以下のリストは、有効な組み込み値を示しています。その他の値はカスタムマージツールとして扱われ、対応する mergetool.<tool>.cmd 変数が定義されている必要があります。
- merge.guitool
-
-g
/--gui
フラグが指定されている場合に、 git-mergetool(1) が使用するマージツールを制御します。以下のリストは、有効な組み込み値を示しています。 その他の値はカスタムマージツールとして扱われ、対応する mergetool.<guitool>.cmd 変数が定義されている必要があります。-
araxis
-
Use Araxis Merge (requires a graphical session)
-
bc
-
Use Beyond Compare (requires a graphical session)
-
bc3
-
Use Beyond Compare (requires a graphical session)
-
bc4
-
Use Beyond Compare (requires a graphical session)
-
codecompare
-
Use Code Compare (requires a graphical session)
-
deltawalker
-
Use DeltaWalker (requires a graphical session)
-
diffmerge
-
Use DiffMerge (requires a graphical session)
-
diffuse
-
Use Diffuse (requires a graphical session)
-
ecmerge
-
Use ECMerge (requires a graphical session)
-
emerge
-
Use Emacs' Emerge
-
examdiff
-
Use ExamDiff Pro (requires a graphical session)
-
guiffy
-
Use Guiffy’s Diff Tool (requires a graphical session)
-
gvimdiff
-
Use gVim (requires a graphical session) with a custom layout (see
git help mergetool
'sBACKEND SPECIFIC HINTS
section) -
gvimdiff1
-
Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)
-
gvimdiff2
-
Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)
-
gvimdiff3
-
Use gVim (requires a graphical session) where only the MERGED file is shown
-
kdiff3
-
Use KDiff3 (requires a graphical session)
-
meld
-
Use Meld (requires a graphical session) with optional
auto merge
(seegit help mergetool
'sCONFIGURATION
section) -
nvimdiff
-
Use Neovim with a custom layout (see
git help mergetool
'sBACKEND SPECIFIC HINTS
section) -
nvimdiff1
-
Use Neovim with a 2 panes layout (LOCAL and REMOTE)
-
nvimdiff2
-
Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)
-
nvimdiff3
-
Use Neovim where only the MERGED file is shown
-
opendiff
-
Use FileMerge (requires a graphical session)
-
p4merge
-
Use HelixCore P4Merge (requires a graphical session)
-
smerge
-
Use Sublime Merge (requires a graphical session)
-
tkdiff
-
Use TkDiff (requires a graphical session)
-
tortoisemerge
-
Use TortoiseMerge (requires a graphical session)
-
vimdiff
-
Use Vim with a custom layout (see
git help mergetool
'sBACKEND SPECIFIC HINTS
section) -
vimdiff1
-
Use Vim with a 2 panes layout (LOCAL and REMOTE)
-
vimdiff2
-
Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)
-
vimdiff3
-
Use Vim where only the MERGED file is shown
-
winmerge
-
Use WinMerge (requires a graphical session)
-
xxdiff
-
Use xxdiff (requires a graphical session)
-
- merge.verbosity
-
再帰的マージ戦略によって示される出力の量を制御します。 レベル0は、競合が検出された場合の最終エラーメッセージ以外は何も出力しません。 レベル1は競合のみを出力し、レベル2は競合とファイル変更を出力します。 レベル5以上はデバッグ情報を出力します。 デフォルトはレベル2です。
GIT_MERGE_VERBOSITY
環境変数でオーバーライドできます。 - merge.<driver>.name
-
カスタムの低レベルマージドライバーの人間が読める名前を定義します。 詳細については、 gitattributes(5) を参照してください。
- merge.<driver>.driver
-
カスタムの低レベルのマージドライバーを実装するコマンドを定義します。 詳細については、 gitattributes(5) を参照してください。
- merge.<driver>.recursive
-
共通の祖先間で内部マージを実行するときに使用される低レベルのマージドライバーに名前を付けます。 詳細については、 gitattributes(5) を参照してください。
- mergetool.<tool>.path
-
指定のツール(<tool>)のパスを上書きします。 これは、ツールがPATH上にない場合に役立ちます。
- mergetool.<tool>.cmd
-
指定のマージツール(<tool>)を呼び出すコマンドを指定します。指定されたコマンドは、次の変数を使用してシェルで評価されます:
BASE
は、マージされるファイルの共通ベースを含む一時ファイルの名前です(使用可能な場合)。LOCAL
は、現在のブランチのファイルの内容を含む一時ファイルの名前です。REMOTE
は、マージされるブランチのファイルの内容を含む一時ファイルの名前です。MERGED
は、マージツールが正常なマージの結果を書き込むファイルの名前が含まれています。 - mergetool.<tool>.hideResolved
-
ユーザーが特定のツール(<tool>)のグローバルな
mergetool.hideResolved
値をオーバーライドできるようにします。 詳細については、mergetool.hideResolved
を参照してください。 - mergetool.<tool>.trustExitCode
-
カスタムマージコマンドの場合、マージコマンドの終了コードを使用してマージが成功したかどうかを判断できるかどうかを指定します。 これがtrueで無い場合、マージターゲットファイルのタイムスタンプがチェックされ、ファイルが更新されている場合はマージが成功したと見なされます。そうでない場合、ユーザーはマージの成功を示すように求められます。
- 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
-
meld は
--auto-merge
が指定されると、競合しないすべての部分を自動的にマージし、競合する部分を強調表示して、ユーザーの決定を待ちます。mergetool.meld.useAutoMerge
を`true`に設定すると、Gitは--auto-merge
オプションをmeld
で無条件に使用するようになります。 この値をauto
に設定すると、gitは--auto-merge
がサポートされているかどうかを検出し、使用可能な場合にのみ--auto-merge
を使用します。false
の値はデフォルト値で、` --auto-merge` の使用を完全に回避します。 - mergetool.vimdiff.layout
-
vimdiff バックエンドはこの変数を使用して、分割されたウィンドウがどのように見えるかを制御します。 マージ・ツールとして Neovim(
nvim
) または gVim(gvim
) を使用している場合でも適用されます。 詳細については、git-mergetool(1) の「BACKEND SPECIFIC HINTS」セクションを参照してください。 - mergetool.hideResolved
-
マージ処理中、Gitは可能な限り多くの競合を自動的に解決し、解決できない競合の周りに競合マーカーを含ませた
MERGED
ファイルを書き込みます。LOCAL`と `REMOTE
は通常、Gitの競合解決前のファイルのバージョンを表します。 この設定によりLOCAL
とREMOTE
が上書きされ、未解決の競合のみがマージツールに表示されます。mergetool.<tool>.hideResolved
構成変数を介してツールごとに構成できます。 デフォルトはfalse
です。 - mergetool.keepBackup
-
マージを実行した後、競合マーカーを含む元のファイルを、拡張子
.orig
のファイルとして保存できます。 この変数がfalse
に設定されている場合、このファイルは保存されません。 デフォルトはtrue
です(つまり、バックアップファイルを保持します)。 - mergetool.keepTemporaries
-
カスタムマージツールを呼び出すとき、Gitは一時ファイルの組をツールに渡します。 ツールがエラーを返し、この変数が
true
に設定されている場合、これらの一時ファイルは保持されます。それ以外の場合、ツールの終了後に削除されます。 デフォルトはfalse
です。 - mergetool.writeToTemp
-
Gitは、デフォルトで、競合するファイルの一時的な 「BASE」バージョンと「LOCAL」バージョンと「REMOTE」バージョンをワークツリーに書き込みます。
true
に設定すると、Gitはこれらのファイルに一時ディレクトリを使用しようとします。 デフォルトはfalse
です。 - mergetool.prompt
-
マージ解決プログラムを呼び出す前にプロンプトを表示します。
- mergetool.guiDefault
-
true
を設定するとデフォルトでmerge.guitool
を使用します(引数--gui
を指定するのと同じです)。 または、auto
を設定するとDISPLAY
環境変数値に応じてmerge.guitool
またはmerge.tool
を選択します。 デフォルトはfalse
でmerge.guitool
を使用するには--gui
引数を明示的に指定する必要があります。 - notes.mergeStrategy
-
ノートの競合を解決するときにデフォルトで選択するマージ戦略。
manual
、` ours`、theirs
、` union` 、cat_sort_uniq
のいずれかである必要があります。 デフォルトはmanual
です。 各戦略の詳細については、 git-notes(1) の「NOTES MERGE STRATEGIES」セクションを参照してください。この設定は、
--strategy
オプションを git-notes(1) に渡すことでオーバーライドできます。 - notes.<name>.mergeStrategy
-
refs/notes/<name>
にノートをマージするときに、どのマージ戦略を選択するか。 これは、より一般的なnotes.mergeStrategy
をオーバーライドします。 利用可能な戦略の詳細については、 git-notes(1) の「NOTES MERGE STRATEGIES」セクションを参照してください。 - notes.displayRef
-
git log
系のコマンドでコミット・メッセージを表示する際に、core.notesRef
やGIT_NOTES_REF
で設定したデフォルトに加えて、どのref (グロブ、または複数回指定されている場合は複数ref)からノートを読み込むかを指定します。この設定は、
GIT_NOTES_DISPLAY_REF
環境変数でオーバーライドでき、環境変数はコロンで区切られたrefまたはグロブ(glob)のリストである必要があります。存在しないrefsに対しては警告が発行されますが、どのrefsにもマッチしないグロブは黙って無視されます。
この設定は、コマンドの
git log
系の--no-notes
オプション、またはこれらのコマンドで受け入れられる--notes=<ref>
オプションによって無効にすることができます。core.notesRef
の有効な値(GIT_NOTES_REFによってオーバーライドされる可能性があります)も、表示されるrefのリストに暗黙的に追加されます。 - notes.rewrite.<command>
-
<command> (現在は
amend
またはrebase
)でコミットを書き換え、 そして、 この変数がfalse
に設定されている場合、git はノートを元のコミットから書き換えられたコミットにコピーしません。 デフォルトはtrue
です。 下記notes.rewriteRef
も参照してください。この設定は、
GIT_NOTES_REWRITE_REF
環境変数でオーバーライドでき、環境変数はコロンで区切られたrefまたはグロブ(glob)のリストである必要があります。 - notes.rewriteMode
-
書き換え時にノートをコピーする場合(
notes.rewrite.<command>
オプション参照)、ターゲットコミットにすでにノートがある場合の対処方法を決定します。overwrite
、concatenate
、cat_sort_uniq
、ignore
のいずれかである必要があります。 デフォルトはconcatenate
です。この設定は、
GIT_NOTES_REWRITE_MODE
環境変数でオーバーライドできます。 - notes.rewriteRef
-
書き換え中にノートをコピーする場合は、ノートをコピーする(完全修飾された)refを指定します。 グロブと見なしたら、マッチするすべてのrefのノートがコピーされます。 この構成を複数回指定することもできます。
デフォルト値はありません。 ノートの書き換えを有効にするには、この変数を構成する必要があります。 デフォルトのコミットノートの書き換えを有効にするには、これを
refs/notes/commits
に設定します。GIT_NOTES_REWRITE_REF
環境変数でオーバーライドできます。 その形式の詳細については、上記notes.rewrite.<command>
を参照してください。 - pack.window
-
コマンドラインでウィンドウサイズが指定されていない場合に git-pack-objects(1) によって使用されるウィンドウのサイズ。デフォルトは10です。
- pack.depth
-
コマンドラインで最大深度が指定されていない場合に git-pack-objects(1) によって使用される最大デルタ深度。デフォルトは50です。最大値は4095です。
- pack.windowMemory
-
コマンドラインで制限が指定されていない場合に、パックウィンドウメモリの git-pack-objects(1) の各スレッドで消費されるメモリの最大サイズ。値には、「k」または「m」または「g」の接尾辞を付けることができます。未構成のまま(または明示的に0に設定する)にした場合、制限はありません。
- pack.compression
-
パックファイル内のオブジェクトの圧縮レベルを示す整数 -1〜9。-1はzlibのデフォルトです。0は圧縮がないことを意味し、1〜9はさまざまな速度とサイズのトレードオフであり、9が最も低速です。設定されていない場合のデフォルトは core.compression です。 core.compression も設定されていない場合、デフォルトは -1 になります。これは、「速度と圧縮の間のデフォルトの妥協点(現在はレベル6と同等)」であるzlibのデフォルトです。
注意: 圧縮レベルを変更しても、既存のすべてのオブジェクトが自動的に再圧縮されるわけではないことに注意してください。
-F
オプションを git-repack(1) に渡すことで、強制的に再圧縮できます。 - pack.allowPackReuse
-
trueの場合、かつ、到達可能性ビットマップ(reachability bitmaps)が有効になっている場合、pack-objectsはビットマップ化されたパックファイルの一部をそのままで送信しようとします。これにより、フェッチを提供するためのメモリとCPUの使用量を減らすことができますが、送信するパックが少し大きくなる可能性があります。デフォルトはtrueです。
- pack.island
-
デルタアイランド(delta islands)のセットを構成する拡張正規表現。詳細については、 git-pack-objects(1) の「DELTA ISLANDS」を参照してください。
- pack.islandCore
-
オブジェクトを最初にパックする島名(island name)を指定します。 これにより、1つのパックの前に一種の疑似パックが作成されるため、指定の島のオブジェクトを、これらのオブジェクトを要求するユーザーに提供する必要のあるパックにコピーする速度が速くなることが期待されます。実際には、これは、指定された島が、リポジトリで最も一般的に複製される島に対応している可能性が高いことを意味します。 git-pack-objects(1) の「DELTA ISLANDS」も参照してください。
- pack.deltaCacheSize
-
デルタをパックに書き出す前に、 git-pack-objects(1) でデルタをキャッシュするために使用されるバイト単位の最大メモリ。すべてのオブジェクトに最適なものが見つけたあとで、このキャッシュがあれば、最終的なデルタ結果を再計算する必要がないため、オブジェクトの書き込みフェーズを高速化できます。そのために使用されます。ただし、メモリが不足しているマシンで大規模なリポジトリを再パックして、特にこのキャッシュがシステムをスワップに追いやる場合、これによって悪影響を受ける可能性があります。値0は、制限がないことを意味します。このキャッシュを事実上無効にするために、最小サイズの1バイトを使用できます。デフォルトは256MiBです。
- pack.deltaCacheLimit
-
git-pack-objects(1) でキャッシュされるデルタの最大サイズ。すべてのオブジェクトに最適なものが見つかった後、このキャッシュがあれば、最終的なデルタ結果を再計算する必要がないため、オブジェクトの書き込みフェーズを高速化します。そのために使用されます。デフォルトは1000です。最大値は65535です。
- pack.threads
-
最適なデルタマッチングを検索するときに生成するスレッドの数を指定します。このためには git-pack-objects(1)をpthreadでコンパイルする必要があります。そうしないと、このオプションは無視され、警告が表示されます。 これは、マルチプロセッサマシンでのパッキング時間を短縮することを目的としています。ただし、デルタ検索ウィンドウに必要なメモリ量は、スレッド数で乗算されます。0を指定すると、GitはCPUの数を自動検出し、それに応じてスレッドの数を設定します。
- pack.indexVersion
-
デフォルトのパックインデックスバージョンを指定します。有効な値は、1.5.2より前のバージョンで使用されていたレガシーパックインデックスの場合は1、4GBを超えるパックの機能と破損したパックの再パックに対する適切な保護を備えた新しいパックインデックスの場合は2です。バージョン2がデフォルトです。注意: 対応するパックが2GBを超える場合は常にバージョン2が適用され、この構成オプションは無視されることに注意してください。
バージョン2の
*.idx
ファイルを理解しない古いGitを使用している場合は、*.pack
ファイルと対応する*.idx
ファイルの両方を反対側からコピーする非ネイティブプロトコル(例:http)を介してクローンを作成またはフェッチすると、古いバージョンのGitではアクセスできないリポジトリが提供される場合があります。けれども、*.pack
ファイルが2GBより小さい場合は、 *.pack に git-index-pack(1) を使用して、*.idx
ファイルを再生成できます。 - pack.packSizeLimit
-
パックの最大サイズ。この設定は、再パック時にファイルへパッキングするときのみ影響します。つまり、 git:// プロトコルは影響を受けません。 git-repack(1) の
--max-pack-size
オプションでオーバーライドできます。この制限に達すると、複数のパックファイルが作成されます。注意: このオプションが役立つことはめったになく、(Gitはパックにまたがるデルタを保存しないため、)ディスク上の合計サイズが大きくなり、実行時のパフォーマンスが低下する可能性があることに注意してください(複数のパック内のオブジェクトルックアップは単一のパックで行うよりも遅く、到達可能性ビットマップなどの最適化は複数パックに対応できません)。
(たとえば、ファイルシステムが大きいファイルをサポートしていないため、)あなたが小さいパックファイルを使用してGitをバリバリと使う必要がある場合、このオプションが役立かもしれません。ただし、限られたサイズをサポートするメディア(たとえば、リポジトリ全体を保存できないリムーバブルメディア)を介してパックファイルを送信することが目標である場合は、単一の大きなパックファイルを作成し、一般的なマルチボリュームアーカイブツール(例えば Unix
split
)を使用して分割する方がよいでしょう。許可される最小サイズは1MiBに制限されています。デフォルトの大きさは無制限です。
k
またはm
またはg
の一般的な単位接尾辞がサポートされています。 - pack.useBitmaps
-
trueの場合、(たとえば、フェッチ作業中のサーバー側で、)gitはstdoutにパックするときに(可能な場合は、)パックビットマップを使用します。デフォルトはtrueです。パックビットマップをデバッグしている場合を除いて、通常、これをオフにする必要はありません。
- pack.useBitmapBoundaryTraversal
-
true の場合、 Git は実験的なアルゴリズムを使用して、 ビットマップを使用した到達可能性クエリを計算します。 すべての到達不可先端の完全なビットマップを構築してからそれらを OR 演算する代わりに、 到達不可先端を既存のビットマップへの追加分として処理し(つまり、 到達不可先端が存在する場合はそれらを結果に OR 演算し、 存在しない場合は無視します)、境界にビットマップを構築します。
このアルゴリズムを使う場合、 Gitは特定の「興味のない」コミットに属するツリーをオープンにしない結果、 多くのオブジェクトを含みすぎてしまうことがあります。この不正確さは、 ビットマップを使わない探索アルゴリズムと一致します。
多くの場合、 これにより、特にクエリの否定側のビットマップ・カバレッジが不十分な場合に、 正確なアルゴリズムよりも高速化できます。
- pack.useSparse
-
trueの場合、 gitは
git pack-objects
で--revs
オプションが存在する場合、デフォルトで--sparse
オプションを使用します。このアルゴリズムは、新しいオブジェクトを導入するパスに現れるツリーのみをウォークします。これは、小さな変更を送信するパックを計算するときに、パフォーマンスに大きなメリットをもたらす可能性があります。ただし、含まれているコミットに特定の種類の直接名前変更(direct renames)が含まれている場合は、パックファイルに追加のオブジェクトが追加される可能性があります。 デフォルトはtrue
です。 - pack.preferBitmapTips
-
ビットマップを受け取るコミットを選択するときは、「選択ウィンドウ」(selection window)の他のコミットよりも、この構成の任意の値の接尾辞である参照の先端にあるコミットを優先します。
注意: この設定を
refs/foo
に設定しても、refs/foo/bar
とrefs/foo/baz
の先端のコミットが必ずしも選択されるわけではないことに注意してください。 これは、可変長の一連のウィンドウ内からビットマップに対してコミットが選択されるためです。この構成の任意の値の接尾辞である参照の先端にあるコミットがウィンドウに表示された場合、そのウィンドウ内の他のコミットよりも即座に優先されます。
- pack.writeBitmaps (非推奨)
-
これは、
repack.writeBitmaps
の非推奨の同義語です。 - pack.writeBitmapHashCache
-
trueの場合、gitはビットマップインデックスに
hash cache
セクションを含めます(記述されている場合)。 このキャッシュは、gitのデルタヒューリスティックを供給するために使用でき、ビットマップオブジェクトと非ビットマップオブジェクト間のデルタを改善する可能性があります(たとえば、古いビットマップパックと最後のgc以降にプッシュされたオブジェクト間のフェッチを提供する場合)。欠点は、ディスクスペースのオブジェクトごとに4バイトを消費することです。 デフォルトはtrueです。マルチパックの到達可能性ビットマップを書き込む場合、新しい名前ハッシュは計算されません。 代わりに、既存のビットマップに保存されている名前ハッシュは、新しいビットマップを書き込むときに適切な場所に移動(permute)させられます。
- pack.writeBitmapLookupTable
-
true の場合、Git はビットマップ・インデックスに
lookup table
(検出表)セクションを含めます (記述されている場合)。 この表(table)は、個々のビットマップの読み込みをできるだけ遅らせるために使用されます。 これは、比較的大きなビットマップ・インデックスを持つリポジトリで役立ちます。 デフォルトは false です。 - pack.readReverseIndex
-
true の場合、git は利用可能なすべての .rev ファイルを読み取ります(gitformat-pack(5) 参照)。 false の場合、逆インデックスがイチから生成(generated from scratch)され、メモリに保存されます。 デフォルトは true です。
- pack.writeReverseIndex
-
true の場合、gitは、 git-fast-import(1) と バルク・チェックイン・メカニズムを除く、すべての場所に書き込む新しいパック・ファイルごとに対応する
.rev
ファイル(gitformat-pack(5) 参照)を書き込みます。デフォルトは true です。 - pager.<cmd>
-
値がブール値の場合、ttyへの書き込み時に特定のGitサブコマンドの出力のページ付けをオンまたはオフにします。それ以外の場合は、
pager.<cmd>
の値で指定されたページャーを使用してサブコマンドのページ付けをオンにします。コマンドラインで--paginate
または--no-pager
が指定されている場合、このオプションよりも優先されます。すべてのコマンドのページ付けを無効にするには、core.pager
またはGIT_PAGER
をcat
に設定します。 - pretty.<name>
-
git-log(1)で 指定されている、
--pretty=
書式文字列のエイリアス。ここで定義されたエイリアスは、組み込みのpretty書式と同じように使用できます。 たとえば、git config pretty.changelog "format:* %H %s"
を実行すると、git log --pretty=changelog
の呼び出しはgit log "--pretty=format:* %H %s"
を実行するのと同じになります。注意: 組み込みフォーマットと同じ名前のエイリアスは黙って無視されることに注意してください。 - protocol.allow
-
設定されている場合は、ポリシーを明示的に持たないすべてのプロトコルにユーザー定義のデフォルトポリシーを指定します(
protocol.<name>.allow
)。デフォルトでは、設定されていない場合、既知の安全なプロトコル(http、https、git、ssh)のデフォルトポリシーは「always」、既知の危険なプロトコル(ext)のデフォルトポリシーは「never」、その他の全てのプロトコルのデフォルトのポリシーは「user」です。サポートされているポリシーは以下です:-
always
- プロトコルは常に使用できます。 -
never
- プロトコルを使用することはできません。 -
user
- プロトコルは、GIT_PROTOCOL_FROM_USER
が設定されていないか、値が1
の場合にのみ使用できます。このポリシーは、プロトコルをユーザーが直接使用できるようにしたいが、ユーザー入力なしの clone/fetch/push を実行するコマンドでは使用したくない場合(たとえば再帰的なsubmoduleの初期化の場合)、設定しなければなりません。
-
- protocol.<name>.allow
-
clone/fetch/push コマンドでプロトコル
<name>
が使用するポリシーを設定します。 使用可能なポリシーについては、上記の「protocol.allow」を参照してください。現在gitで使用されているプロトコル名はイカのとおりです:
-
file
: 任意のローカルファイルベースのパス(file://
URL または ローカルパス を含む) -
git
: 直接TCP接続(または構成されている場合はプロキシ)を介した匿名のgitプロトコル -
ssh
: sshプロトコルの上で動くgitプロトコル(host:path
書式やssh://
等を含む) -
http
: httpプロトコルの上で動くgitプロトコル。「スマートhttp」と「ダムhttp」の両方です。両方を構成する場合は、個別に構成する必要があります。注意:これにはhttps
は含まれないことに注意してください。 -
外部ヘルパーはそれらのプロトコルによる名前が付けられます(たとえば、
hg
というプロトコルを指定したらgit-remote-hg
ヘルパーを許可します)
-
- protocol.version
-
設定されている場合、クライアントは指定されたプロトコルバージョンを使用してサーバーとの通信を試みます。サーバーがサポートしていない場合、通信はバージョン0にフォールバックします。設定されていない場合、デフォルトは「2」です。 サポートされているバージョンは以下です:
-
0
- オリジナル・ワイヤー・プロトコル -
1
- サーバーからの初期応答にバージョン文字列が追加されたオリジナル・ワイヤー・プロトコル。 -
2
- ワイヤー・プロトコル・バージョン 2。gitprotocol-v2(5) 参照。
-
- pull.ff
-
デフォルトでは、Gitは、現在のコミットの子孫であるコミットをマージするときに、追加のマージコミットを作成しません。 代わりに、現在のブランチの先端が早送り(fast-forward)されます。
false
に設定すると、この変数はGitにそのような場合に追加のマージコミットを作成するように指示します(コマンドラインから--no-ff
オプションを指定するのと同じです)。only
に設定すると、そのような早送り(fast-forward)マージのみが許可されます(コマンドラインから--ff-only
オプションを指定するのと同じです)。 この設定は、プル時にmerge.ff
をオーバーライドします。 - pull.rebase
-
trueの場合、
git pull
の実行時にデフォルトのリモートからデフォルトのブランチをマージするのではなく、フェッチされたブランチの上にブランチをリベースします。 ブランチごとにこれを設定するには、branch.<name>.rebase
を参照してください。merges
(または単にm
)の場合、--rebase-merges
オプションをgit rebase
に渡して、ローカルマージコミットがリベースに含まれるようにします(詳細については、 git-rebase(1) を参照してください)。値が
interactive
(または単にi
)の場合、リベースは対話モードで実行されます。注意: これはおそらく危険な操作です。 あなたが影響を理解していない限り、使用しないでください (詳細については、 git-rebase(1) を参照してください)。
- pull.octopus
-
複数のブランチを一度にプルするときに使用するデフォルトのマージ戦略。
- pull.twohead
-
単一のブランチをプルするときに使用するデフォルトのマージ戦略。
- push.autoSetupRemote
-
true
に設定すると、現在のブランチの上流追跡(upstream tracking)が存在しない場合、デフォルトのpushで--set-upstream
を想定します。 このオプションは、 push.default オプションのsimple
やupstream
やcurrent
で有効になります。 (push.default=current
の振る舞いのように、)デフォルトで新しいブランチをデフォルトのremoteにプッシュしたい場合に便利で、これは、あなたが上流追跡(upstream tracking)も設定したい場合にも便利です。 このオプションの恩恵を受ける可能性が最も高いワークフローは、すべてのブランチがremoteで同じ名前を持つことが期待される「単純な」中央ワークフローです。 - push.default
-
(コマンドライン、構成、またはその他の場所で、)refspecが指定されていない場合に
git push
が実行するアクションを定義します。 特定の作業フローに適するさまざまな値があります。 たとえば、純粋に中央のワークフロー(つまり、フェッチ元がプッシュ先と等しい)では、upstream
がおそらく必要なものです。 可能な値は以下のとおりです:-
nothing
- refspecが指定されていない限り、何もプッシュ(エラー出力)しないでください。 これは主に、常に明示的にすることで間違いを避けたい人を対象としています。 -
current
- 現在のブランチをプッシュして、受信側で同一の名前のブランチを更新します。 中央作業フローと非中央作業フローの両方で機能します。 -
upstream
- 現在のブランチを、通常その変更が現在のブランチに統合されるブランチにプッシュバックします(これを@{upstream}
と呼びます)。 このモードは、通常プルするのと同じリポジトリ(つまり中央ワークフロー)にプッシュする場合にのみ意味があります。 -
tracking
- これはupstream
の非推奨の同義語です。 -
simple
- リモートで同一の名前の現在のブランチをプッシュします。あなたが一元化された作業フロー(あなたのプル元の同一のリポジトリにプッシュする、通常は
origin
)で作業している場合は、あなたは同一の名前でアップストリームブランチを構成する必要があります。このモードはGit2.0以降のデフォルトであり、初心者に適した最も安全なオプションです。
-
matching
- 送信側受信側両方で同一の名前のすべてのブランチをプッシュします。 これにより、プッシュするリポジトリは、プッシュされるブランチのセットを記憶するようになります(たとえば、常に「maint」と「master」をプッシュし、他のブランチがない場合、プッシュするリポジトリには、これら2つのブランチがあり、ローカルの「maint」と「master」がそこにプッシュされます)。このモードを効果的に使用するには、
git push
を実行する前に、あなたがプッシュしたい「すべてのブランチ」がプッシュされる準備ができていることを確認する必要があります。このモードの要点は、すべてのブランチを一度にプッシュできるようにすることです。通常、1つのブランチのみで作業を終了して結果をプッシュする場合、他のブランチは未完了ですので、このモードは適していません。 また、このモードは、共有中央リポジトリにプッシュするのには適していません。他の人がそこに新しいブランチを追加したり、コントロール外の既存のブランチの先端を更新したりする可能性があるためです。これは以前はデフォルトでしたが、Git 2.0以降ではそうではありません(
simple
が新しいデフォルトです)。
-
- push.followTags
-
trueに設定されている場合、デフォルトで
--follow-tags
オプションを有効にします。--no-follow-tags
を指定することにより、プッシュ時にこの構成をオーバーライドできます。 - push.gpgSign
-
ブール値、または文字列
if-asked
に設定できます。 true値を指定すると、--signed
linkgit:git-push [1]に渡されたかのように、すべてのプッシュがGPG署名されます。 文字列if-asked
を指定し、サーバーがサポートしている場合は、--signed=if-asked
がgit push
に渡されたかのように、プッシュで署名されます。 誤った値は、優先度の低い構成ファイルの値を上書きする可能性があります。 明示的なコマンドラインオプションは、常にこの設定オプションを上書きします。 - push.pushOption
-
コマンドラインから
--push-option=<option>
引数が指定されていない場合、git push
はこの変数の各<value> が--push-option=<value>
として指定されているかのように動作します。これは複数値の変数であり、優先度の高い構成ファイル(リポジトリ内の
.git/config
など)で空の値を使用して、優先度の低い構成ファイル($HOME/.gitconfig
など)から継承された値をクリアできます。Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b (a and c are cleared).
- push.recurseSubmodules
-
値は
check
またはon-demand
またはonly
またはno
のいずれかで、push --recurse-submodules
と同じ動作になります。 設定されていない場合、submodule.recurse
が設定されていない限り、 デフォルトでno
が使用されます(submodule.recurse
が設定されている場合、submodule.recurse
のtrue
値はon-demand
を意味します)。 - push.useForceIfIncludes
-
「true」に設定すると、コマンドラインで git-push(1) のオプションとして
--force-if-includes
を指定するのと同じです。 プッシュ時に--no-force-if-includes
を追加すると、この構成設定が上書きされます。 - push.negotiate
-
「true」に設定されている場合は、クライアントとサーバーが共通のコミットを見つけようとするネゴシエーションの段階で送信されるパックファイルのサイズを縮小してみます。 「false」の場合、Gitはサーバーのref広告のみに依存して、共通のコミットを検索します。
- push.useBitmaps
-
false
に設定すると、pack.useBitmaps
がtrue
であってもgit push
のビットマップの使用が無効になり、他の git 操作でのビットマップの使用が妨げられません。 デフォルトはtrue
です。 - rebase.backend
-
リベースに使用するデフォルトのバックエンド。 可能な選択肢は、「apply」または「merge」です。 将来、mergeバックエンドがapplyバックエンドの残りのすべての機能を取得した場合、この設定は使用されなくなる可能性があります。
- rebase.stat
-
最後のリベース以降にアップストリームで変更されたもののdiffstatを表示するかどうか。デフォルトではFalseです。
- rebase.autoSquash
-
trueに設定されている場合、デフォルトで
--autosquash
オプションを有効にします。 - rebase.autoStash
-
trueに設定すると、操作を開始する前に一時的なstashエントリを自動的に作成し、操作の終了後に適用します。これは、ダーティワークツリーでリベースを実行できることを意味します。ただし、注意して使用してください。リベースが成功した後の最後のstashアプリケーションは、重要な競合を引き起こす可能性があります。このオプションは、 git-rebase(1) の
--no-autostash
および--autostash
オプションでオーバーライドできます。 デフォルトはfalseです。 - rebase.updateRefs
-
trueに設定されている場合、デフォルトで
--update-refs
オプションを有効にします。 - rebase.missingCommitsCheck
-
「warn」に設定すると、
git rebase -i
は、一部のコミットが削除された場合(たとえば、行が削除された場合)に警告を出力しますが、リベースは続行されます。 「error」に設定すると、前記の警告が出力され、リベースが停止(stop)します。git rebase --edit-todo
を使用して、エラーを修正できます。 「ignore」に設定すると、チェックは行われません。 警告やエラーなしにコミットをドロップするには、todoリストのdrop
コマンドを使用します。 デフォルトは「ignore」です。 - rebase.instructionFormat
-
git-log(1) で指定されている、対話的リベース中にToDoリストに使用される書式文字列。書式では、自動的に長いコミットハッシュが書式の前に付加されます。
- rebase.abbreviateCommands
-
trueに設定すると、
git rebase
はtodoリストで省略コマンド名を使用し、以下のようになります:p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
上記は以下の省略形です:
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...
デフォルトではfalseです。
- rebase.rescheduleFailedExec
-
失敗した
exec
コマンドを自動的に再スケジュールします。 これは、対話モード (または--exec
オプションが指定されている場合)でのみ意味があります。これは--reschedule-failed-exec
オプションを指定するのと同じです。 - rebase.forkPoint
-
falseに設定されている場合、デフォルトで
--no-fork-point
オプションを設定します。 - rebase.rebaseMerges
-
デフォルトで
--rebase-merges
オプションを設定するかどうか、および設定方法。rebase-cousins
またはno-rebase-cousins
またはブール値を指定できます。 true またはno-rebase-cousins
に設定すると--rebase-merges=no-rebase-cousins
と同等になり、rebase-cousins
に設定すると--rebase-merges=rebase-cousins
と同等になります。 false に設定すると--no-rebase-merges
と同等になります。 コマンドラインで--rebase-merges
を渡すと引数の有無にかかわらず、 すべてのrebase.rebaseMerges
設定がオーバーライドされます。 - receive.advertiseAtomic
-
デフォルトでは、git-receive-packはアトミックプッシュ機能(atomic push capability)をクライアントに公表(advertise)します。この機能を公表したくない場合は、この変数をfalseに設定してください。
- receive.advertisePushOptions
-
trueに設定すると、git-receive-packはプッシュオプション機能(push options capability)をクライアントに公表(advertise)します。デフォルトではFalse。
- receive.autogc
-
デフォルトでは、git-pushからデータを受信し、参照を更新した後、git-receive-packは
git-gc --auto
を実行します。 この変数をfalseに設定することで停止できます。 - receive.certNonceSeed
-
この変数を文字列に設定すると、
git receive-pack
はgit push --signed
を受け入れ、その文字列を秘密鍵として使用してHMACによって保護された「nonce」を使用して検証します。 - receive.certNonceSlop
-
git push --signed
が、同じリポジトリにサービスを提供するreceive-packによって発行された「nonce」を含むプッシュ証明書をこの数秒以内に送信した場合、証明書で見つかった「nonce」をフックのためにGIT_PUSH_CERT_NONCE
にエクスポートします(receive-packが送信側に含めるように要求したものの代わりに)。 これにより、pre-receive
とpost-receive
でのチェックの記述が少し簡単になります。証明書を受け入れるかどうかを決定するために、nonce が何秒後に古くなるかを記録する環境変数GIT_PUSH_CERT_NONCE_SLOP
をチェックする代わりに、GIT_PUSH_CERT_NONCE_STATUS
がOK
であることだけをチェックすることができます。 - receive.fsckObjects
-
trueに設定されている場合、git-receive-packは受信したすべてのオブジェクトをチェックします。 チェックされる内容については、
transfer.fsckObjects
を参照してください。デフォルトはfalseです。設定されていない場合は、代わりにtransfer.fsckObjects
の値が使用されます。 - receive.fsck.<msg-id>
-
fsck.<msg-id>
のように機能しますが、 linkgit: git-fsck[1] の代わりに git-receive-pack(1) によって使用されます。詳細については、fsck.<msg-id>
の文書を参照してください。 - receive.fsck.skipList
-
fsck.skipList
のように機能しますが、 git-fsck(1) の代わりに git-receive-pack(1) によって使用されます。詳細については、fsck.skipList
の文書を参照してください。 - receive.keepAlive
-
クライアントからパックを受信した後、パックの処理中に
receive-pack
が出力を生成せず(--quiet
が指定されている場合)、一部のネットワークがTCP接続を切断する可能性があります。このオプションを設定すると、receive-pack
はこのフェーズでreceive.keepAlive
秒の間データを送信しない場合、short keepalive packetを送信します。デフォルトは5秒です。キープアライブを完全に無効にするには、0に設定します。 - receive.unpackLimit
-
プッシュで受信されるオブジェクトの数がこの制限を下回る場合、オブジェクトは緩いオブジェクト(loose object)ファイルに解凍されます。ただし、受信したオブジェクトの数がこの制限以上の場合、受信したパックは、欠落しているデルタベースを追加した後、パックとして保存されます。プッシュからパックを保存すると、特に低速のファイルシステムで、プッシュ操作をより速く完了することができます。 設定されていない場合は、代わりに
transfer.unpackLimit
の値が使用されます。 - receive.maxInputSize
-
着信パックストリームのサイズがこの制限よりも大きい場合、パックファイルを受け入れる代わりに git-receive-pack がエラーになります。0に設定または設定されていない場合、サイズは無制限です。
- receive.denyDeletes
-
trueに設定すると、git-receive-packはrefを削除するrefの更新を拒否します。これを使用して、プッシュによるそのような参照の削除を防ぎます。
- receive.denyDeleteCurrent
-
trueに設定すると、git-receive-packは、非ベアリポジトリの現在チェックアウトされているブランチを削除するrefの更新を拒否します。
- receive.denyCurrentBranch
-
trueまたは "refuse"(拒否)に設定すると、 git-receive-pack は、非ベアリポジトリの現在チェックアウトされているブランチへのrefの更新を拒否します。このようなプッシュは、HEADがインデックスおよび作業ツリーと同期しなくなるため、潜在的に危険です。"warn"(警告)に設定されている場合は、stderrへのそのようなプッシュの警告を出力しますが、プッシュを続行できるようにします。 falseまたは"ignore"(無視)に設定されている場合は、メッセージなしでそのようなプッシュを許可します。 デフォルトは"refuse"です。
別のオプションは"updateInstead"で、現在のブランチにプッシュすると作業ツリーが更新されます。このオプションは、インタラクティブsshを介して一方の側に簡単にアクセスできない場合に作業ディレクトリを同期することを目的としています(たとえば、ライブWebサイト。つまり作業ディレクトリがクリーンである必要があります)。 このモードは、VM内で開発して、さまざまなオペレーティングシステムでコードをテストおよび修正する場合にも役立ちます。
デフォルトでは、作業ツリーまたはインデックスにHEADとの違いがある場合、"updateInstead"はプッシュを拒否しますが、
push-to-checkout
フックを使用してこれをカスタマイズできます。 githooks(5) を参照してください。 - receive.denyNonFastForwards
-
trueに設定すると、git-receive-packは、fast-forwardではないrefの更新を拒否します。これを使用して、プッシュが強制されている場合でも、プッシュによるそのような更新を防ぎます。この構成変数は、共有リポジトリを初期化するときに設定されます。
- receive.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、receive-pack
にのみ適用されます(したがって、プッシュには影響しますが、フェッチには影響しません)。git push
によって非表示の参照を更新または削除しようとする試みは拒否されます。 - receive.procReceiveRefs
-
これは、
receive-pack
のコマンドに一致する参照プレフィックスを定義する複数値の変数(multi-valued variable)です。プレフィックスに一致するコマンドは、内部のexecute_commands
関数ではなく、外部フック「proc-receive」によって実行されます。この変数が定義されていない場合、「proc-receive」フックは使用されず、すべてのコマンドは内部のexecute_commands
関数によって実行されます。たとえば、この変数が "refs/for" に設定されている場合、 "refs/for/master" などの参照にプッシュしても "refs/for/master" という名前の参照は作成・更新されませんが、 "proc-receive" フックを実行すれば直接プルリクエストを作成・更新できるはずです。
オプションの修飾子を値の先頭に指定して、特定のアクション(作成(a)、変更(m)、削除(d))のコマンドをフィルター処理できます。
!
を修飾子に含めて、参照プレフィックスエントリを無効にすることができます。 例えば以下のようにできます:git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
- receive.updateServerInfo
-
trueに設定すると、git-pushからデータを受信し、参照を更新した後、git-receive-packはgit-update-server-infoを実行します。
- receive.shallowUpdate
-
trueに設定すると、新しい参照に新しいshallow rootsが必要になったときに .git/shallow を更新できます。それ以外の場合、それらの参照は拒否されます。
- remote.pushDefault
-
デフォルトでプッシュするリモート。 すべてのブランチの
branch.<name>.remote
をオーバーライドし、特定のブランチのbranch.<name>.pushRemote
によってオーバーライドされます。 - remote.<name>.url
-
リモートリポジトリのURL。 git-fetch(1) または git-push(1) を参照してください。
- remote.<name>.pushurl
-
リモートリポジトリのプッシュURL。 git-push(1) を参照してください。
- remote.<name>.proxy
-
curl(httpとhttpsとftp)を必要とするリモートの場合、そのリモートに使用するプロキシへのURL。 そのリモートのプロキシを無効にするには、空の文字列に設定します。
- remote.<name>.proxyAuthMethod
-
curl(httpとhttpsとftp)を必要とするリモートの場合、使用中のプロキシ(おそらく
remote.<name>.proxy
で設定)に対して認証するために使用するメソッド。http.proxyAuthMethod
を参照してください。 - remote.<name>.fetch
-
git-fetch(1) のデフォルトの「refspec」セット。 git-fetch(1) を参照してください。
- remote.<name>.push
-
git-push(1) のデフォルトの「refspec」セット。 git-push(1) を参照してください。
- remote.<name>.mirror
-
trueの場合、このリモートにプッシュすると、コマンドラインで
--mirror
オプションが指定されたかのように自動的に振る舞います。 - remote.<name>.skipDefaultUpdate
-
trueの場合、 git-fetch(1) または git-remote(1) の
update
サブコマンドを使用して更新すると、このリモートはデフォルトでスキップされます。 - remote.<name>.skipFetchAll
-
trueの場合、 git-fetch(1) または git-remote(1) の
update
サブコマンドを使用して更新すると、このリモートはデフォルトでスキップされます。 - remote.<name>.receivepack
-
プッシュ時にリモート側で実行するデフォルトのプログラム。 git-push(1) のオプション
--receive-pack
を参照してください。 - remote.<name>.uploadpack
-
フェッチ時にリモート側で実行するデフォルトのプログラム。 git-fetch-pack(1) のオプション
--upload-pack
を参照してください。 - remote.<name>.tagOpt
-
この値を
--no-tags
に設定すると、リモート<name>からフェッチするときの自動タグ追跡が無効になります。--tags
に設定すると、リモートブランチヘッドから到達できない場合でも、リモート<name>からすべてのタグがフェッチされます。 これらのフラグを直接 git-fetch(1) に渡すと、この設定を上書きできます。 git-fetch(1) のオプション--tags
および--no-tags
を参照してください。 - remote.<name>.vcs
-
これを値 <vcs> と設定すると、Gitは git-remote-<vcs> ヘルパーを使用してリモートと対話します。
- remote.<name>.prune
-
trueに設定した時は、デフォルトでこのリモートからフェッチすると、(コマンドラインで
--prune
オプションが指定されているかのように、)リモートに存在しなくなったリモート追跡参照も削除されます。fetch.prune
設定が存在する場合、それをオーバーライドします。 - remote.<name>.pruneTags
-
trueに設定した時、デフォルトでこのリモートからフェッチすると、一般に刈り込み(pruning)が
remote.<name>.prune
またはfetch.prune
または--prune
を介して、アクティブ化されている場合、リモートに存在しなくなったローカルタグも削除されます。fetch.pruneTags
設定存在する場合それをオーバーライドします。remote.<name>.prune
および git-fetch(1) の「PRUNING」セクションも参照してください。 - remote.<name>.promisor
-
trueに設定すると、このリモートはプロミザー(promisor)オブジェクトをフェッチするために使用されます。
- remote.<name>.partialclonefilter
-
このプロミサー・リモートからフェッチするときに適用されるフィルター。 この値を変更またはクリアした場合、その後のコミットのフェッチにのみ影響します。 ローカル・オブジェクト・データベースに既に存在するコミットの関連オブジェクトをフェッチするには、 git-fetch(1) の
--refetch
オプションを使用します。 - remotes.<group>
-
git remote update <group>
によってフェッチされるremoteのリスト。 git-remote(1) を参照してください。 - repack.useDeltaBaseOffset
-
デフォルトでは、 git-repack(1) はデルタベースオフセットを使用するパックを作成します。 あなたのリポジトリを、バージョン1.4.4より古いGitと直接、またはhttpなどのバカ(dumb)プロトコルを介して共有する必要がある場合は、このオプションを
false
に設定して再パックする必要があります。 ネイティブプロトコルを介した古いバージョンのGitからのアクセスは、このオプションの影響を受けません。 - repack.packKeptObjects
-
trueに設定すると、
git repack
が--pack-kept-objects
が渡されたかのように動作します。 詳細については、 git-repack(1) を参照してください。 デフォルトは通常false
ですが、ビットマップインデックスが(--write-bitmap-index
またはrepack.writeBitmaps
のいずれかを介して)書き込まれている場合はtrue
です。 - repack.useDeltaIslands
-
trueに設定すると、
git repack
が--delta-islands
が渡されたかのように動作します。 デフォルトはfalse
です。 - repack.writeBitmaps
-
trueの場合、gitはすべてのオブジェクトをディスクにパックするときにビットマップインデックスを書き込みます(たとえば、
git repack -a
が実行される場合)。 このインデックスは、クローンとフェッチ用に作成された後続のパックの「オブジェクトのカウント」フェーズを高速化できますが、ディスクスペースと最初の再パックに余分な時間がかかります。 複数のパックファイルが作成されている場合、これは効果がありません。 ベア(bare)リポジトリではデフォルトでtrueになり、それ以外の場合はfalseになります。 - repack.updateServerInfo
-
false に設定すると、git-repack(1) は git-update-server-info(1) を実行しません。 デフォルトは true です。 git-repack(1) の
-n
オプションで true の場合、オーバーライドできます。 - repack.cruftWindow
- repack.cruftWindowMemory
- repack.cruftDepth
- repack.cruftThreads
-
クラフト・パック(cruft pack)を生成するときに git-pack-objects(1) が使用するパラメータで、これらのパラメータはコマンドラインから与えることはできません。デフォルトと意味については、
pack.*
設定変数の対応する名前のを参照してください。 - rerere.autoUpdate
-
trueに設定すると、
git-rerere
は、以前に記録された解決策を使用して競合をクリーンに解決した後、結果のコンテンツでインデックスを更新します。 デフォルトはfalseです。 - rerere.enabled
-
解決された競合の記録をアクティブにして、同じ競合ハンクが再度発生した場合に自動的に解決できるようにします。 デフォルトでは、
$GIT_DIR
の下にrr-cache
ディレクトリがある(例えばrerere
が以前にリポジトリで使用されていた)場合、 git-rerere(1) が有効になります。 - revert.reference
-
この変数を true に設定すると、
git revert
は--reference
オプションが指定されているかのように振る舞います。 - safe.bareRepository
-
Git が動作するベア(bare)・リポジトリを指定します。 現在サポートされている値は以下のとおりです:
-
all
: Git はすべてのベア(bare)・リポジトリで動作します。 これがデフォルトです。 -
explicit
: Git は、最上位の--git-dir
コマンドライン・オプション、 またはGIT_DIR
環境変数(git(1) を参照)で指定されたベア・リポジトリでのみ動作します。あなたのワークフローでベア・リポジトリを使用しない場合は、グローバル構成で
safe.bareRepository
をexplicit
に設定すると効果的です。 これにより、ベア・リポジトリを含むリポジトリのクローンを作成し、そのディレクトリ内で Git コマンドを実行する攻撃から保護されます。この構成設定は、保護された構成(protected configuration)でのみ尊重されます([SCOPES] 参照)。 これにより、信頼されていないリポジトリ(untrusted repository)がこの値を改ざんするのを防ぎます。
-
- safe.directory
-
これらの構成(config)エントリは、現在のユーザー以外の誰かが所有していても安全と見なされる Git 追跡ディレクトリを指定します。 デフォルトでは、Git は他の誰かが所有するリポジトリの Git 構成(config)をパースすることさえ拒否し、 そのフックを実行に関しては言うまでもありません。 この構成設定により、 ユーザーは例外を指定できます。 例えば、意図的に共有するリポジトリ用です (git-init(1) の
--shared
オプションを参照)。これは複数の値(multi-valued)を持つ設定です。つまり、
git config --add
を使用して複数のディレクトリを追加できます。 (たとえば、システム構成で指定されたそのようなディレクトリを上書きするため、)安全なディレクトリのリストをリセットするには、空の値を持つsafe.directory
エントリを追加します。この構成設定は、保護された構成(protected configuration)でのみ尊重されます([SCOPES] 参照)。 これにより、信頼されていないリポジトリ(untrusted repository)がこの値を改ざんするのを防ぎます。
この設定の値は補完(interpolated)されます。つまり、
~/<path>
はホーム・ディレクトリからの相対パスに展開され、%(prefix)/<path>
は Git コマンドの (実行時) プレフィックスからの相対パスに展開されます。このセキュリティ・チェックを完全にオプトアウトするには、
safe.directory
を文字列*
に設定します。 これにより、すべてのリポジトリを、それらのディレクトリがsafe.directory
リストにリストされているかのように扱うことができます。 システム構成でsafe.directory=*
が設定されていて、この保護を再度有効にしたい場合は、安全と見なすリポジトリをリストする前に、空の値でリストを初期化してください。説明したように、Git はデフォルトで、自分自身 (Git を実行しているユーザー) が所有するリポジトリにのみアクセスできます。 ただし、sudo を提供する非 Windows プラットフォームで Git が「root」として実行されている場合、git は、sudo が作成する SUDO_UID 環境変数をチェックし、「root」からの ID に加えて、その値として記録された uid へのアクセスを許可します。 これは、インストール中に共通のシーケンス
make && sudo make install
を実行しやすくするためです。 「sudo」の下で実行される git プロセスは「root」として実行されますが、「sudo」コマンドは環境変数をエクスポートして、元のユーザーの ID を記録します。 それが望ましくなく、代わりに root が所有するリポジトリのみを git に信頼させたい場合は、git を呼び出す前に root の環境からSUDO_UID
変数を削除できます。 - sendemail.identity
-
構成ID。 指定すると、
sendemail.<identity>
サブセクションの値がsendemail
セクションの値よりも優先されます。 デフォルトのIDは、 `sendemail.identity`の値です。 - sendemail.smtpEncryption
-
説明については、 git-send-email(1) を参照してください。 注意: この設定は
identity
メカニズムの対象ではないことに注意してください。 - sendemail.smtpsslcertpath
-
ca-certificatesへのパス(ディレクトリまたは単一ファイルのどちらか)。 証明書の検証を無効にするには、空の文字列に設定します。
- sendemail.<identity>.*
-
以下の
sendemail.*
パラメータのID固有のバージョン。コマンドラインまたはsendemail.identity
のいずれかを使用して、このIDが選択された場合のパラメータよりも優先されます。 - sendemail.multiEdit
-
true (デフォルト) の場合、編集する必要があるファイルを編集するために単一のエディター・インスタンスが生成されます(
--annotate
が使用されている場合はパッチ、--compose
が使用されている場合は要約)。 false の場合、ファイルは次々に編集され、そのたびに新しいエディター・インスタンスが生成されます。 - sendemail.confirm
-
送信前に確認するかどうかのデフォルトを設定します。
always
またはnever
またはcc
またはcompose
またはauto
のいずれかでなければなりません。 これらの値の意味については、 git-send-email(1) ドキュメントの--confirm
を参照してください。 - sendemail.aliasesFile
-
長い電子メール・アドレスのタイピングを回避するには、1 つまたは複数の電子メール・エイリアス・ファイルを指定します。
sendemail.aliasFileType
も指定する必要があります。 - sendemail.aliasFileType
-
sendemail.aliasesFile
で指定されたファイルの形式。mutt
,mailrc
,pine
,elm
,gnus
,sendmail
のいずれかでなければなりません。各形式のエイリアス・ファイルがどのようなものかは、同名の電子メール・プログラムのドキュメントに記載されています。 標準フォーマットとの相違点と制限事項は以下のとおりです:
- sendmail
-
-
引用エイリアス(quoted aliases)と引用アドレス(quoted addresses)はサポートされていません。
"
記号を含む行は無視されます。 -
ファイル(
/path/name
)またはパイプ(|command
)へのリダイレクトはサポートされていません。 -
ファイル・インクルード(
:include: /path/name
)はサポートされていません。 -
明示的にサポートされていない構造(constructs)、およびパーサーによって認識されないその他の行については、警告が標準エラー出力に出力されます。
-
- sendemail.annotate
- sendemail.bcc
- sendemail.cc
- sendemail.ccCmd
- sendemail.chainReplyTo
- sendemail.envelopeSender
- sendemail.from
- sendemail.headerCmd
- 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 (非推奨)
-
sendemail.signedoffbycc
の非推奨のエイリアス。 - sendemail.smtpBatchSize
-
接続ごとに送信されるメッセージの数。その後、再ログインが発生します。 値が0または未定義の場合、すべてのメッセージを1つの接続で送信します。 git-send-email(1) の
--batch-size
オプションも参照してください。 - sendemail.smtpReloginDelay
-
SMTPサーバーに再接続する前に指定の秒数待機します。 git-send-email(1)の
--relogin-delay
オプションも参照してください。 - sendemail.forbidSendmailVariables
-
一般的な設定ミスを回避するために、 git-send-email(1) は、
sendmail
の設定オプションが存在する場合、警告とともに中止します。 チェックをバイパスするには、この変数を設定します。 - sequence.editor
-
リベース命令ファイル(rebase instruction file)を編集するために
git rebase -i
によって使用されるテキストエディタ。この値は、使用時にシェルによって解釈されることを意図しています。 これは、GIT_SEQUENCE_EDITOR
環境変数によってオーバーライドできます。構成されていない場合は、代わりにデフォルトのコミットメッセージエディタが使用されます。 - showBranch.default
-
git-show-branch(1) のデフォルトのブランチセット。 git-show-branch(1) を参照してください。
- sparse.expectFilesOutsideOfPatterns
-
通常、スパース・チェックアウトでは、どのスパース・パターンとも一致しないファイルは、インデックスの SKIP_WORKTREE ビットでマークされ、作業ツリーから欠落します。 したがって、Git は通常、期待に反して SKIP_WORKTREE ビットを持つファイルが実際に作業ツリーに存在するかどうかを確認します。 Git がいずれかを見つけた場合、関連する SKIP_WORKTREE ビットをクリアすることにより、それらのパスが存在するものとしてマークします。 このオプションを使用して、そのような存在にもかかわらずスキップされたファイルが予期できることを Git に伝え、それらのチェックを停止することができます。
デフォルトは
false
です。これにより、Git はインデックス内のファイルのリストと同期が取れなくなった作業ツリーから自動的に回復(recover)できます。何らかの外部要因で、作業ツリーファイルの存在とスパース・パターンの間の一貫性を維持するための責任をGitに負わせなくていい場合、これを
true
にセットしてください。 例えば、アクセス・パターンに基づいて作業ツリーとスパース・パターンを最新に保つための堅牢なメカニズムを持つGit認識仮想ファイルシステムを持っている場合です。この設定にかかわらず、Gitはスパース・チェックアウトが有効になっていない限り、存在するにも関わらずスキップ(present-despite-skip)されたファイルをチェックしません。したがって、このオプションは
core.sparseCheckout
がtrue
でない限り何の効果も持ちません。 - splitIndex.maxPercentChange
-
分割インデックス機能を使用する場合、これは、新しい共有インデックスが書き込まれる前の、分割インデックスと共有インデックスの両方のエントリの総数と比較した、分割インデックスに含めることができるエントリの割合を指定します。 値は0〜100の間である必要があります。 値が0の場合、新しい共有インデックスが常に書き込まれ、100の場合、新しい共有インデックスが書き込まれることはありません。 デフォルトの値は20であるため、分割インデックスのエントリ数がエントリの総数の20%を超える場合は、新しい共有インデックスが書き込まれます。 git-update-index(1) を参照してください。
- splitIndex.sharedIndexExpire
-
分割インデックス機能を使用すると、この変数が指定する時間以降に変更されなかった共有インデックスファイルは、新しい共有インデックスファイルが作成されるときに削除されます。 値
now
はすべてのエントリをすぐに期限切れにし、never
は期限切れを完全に抑制します。 デフォルト値は2.weeks.ago
です。 共有インデックスファイルは、それに基づいて新しい分割インデックスファイルが作成されるか、そこから読み取られるたびに、(有効期限について)変更されたと見なされることに注意してください。 git-update-index(1) を参照してください。 - ssh.variant
-
デフォルトでは、Gitは設定されたSSHコマンドのベース名(環境変数
GIT_SSH
または環境変数GIT_SSH_COMMAND
または構成設定core.sshCommand
を使用して設定)に基づいて使用するコマンドライン引数を決定します。ベース名が認識されない場合、Gitは最初に-G
(print configuration)オプションを使用して構成済みのSSHコマンドを呼び出し、その後、(成功した場合、)OpenSSHオプションを使用するか、(失敗した場合、)hostおよびremoteコマンド以外のオプションを使用しないことで、OpenSSHオプションのサポートを検出しようとします。構成変数
ssh.variant
は、この検出をオーバーライドするように設定できます。有効な値は、ssh
(OpenSSHオプションを使用する場合)、plink
、putty
、tortoiseplink
、simple
(hostおよびremoteコマンド以外のオプションを持っていません)、です。 デフォルトの自動検出は、値auto
を使用して明示的に要求できます。また、これ以外の値はssh
として扱われます。この設定は、環境変数GIT_SSH_VARIANT
を介してオーバーライドすることもできます。各派生で使用されている現在のコマンドラインパラメータは以下のとおりです:
-
ssh
- [-p port] [-4] [-6] [-o option] [username@]host command -
simple
- [username@]host command -
plink
orputty
- [-P port] [-4] [-6] [username@]host command -
tortoiseplink
- [-P port] [-4] [-6] -batch [username@]host command
simple
派生を除き、コマンドラインパラメータはgitが新しい機能を取得するにつれて変更される可能性があります。 -
- status.relativePaths
-
デフォルトでは、 git-status(1) は現在のディレクトリからの相対パスを表示します。 この変数を
false
に設定すると、リポジトリルートを基準にしたパスが表示されます(これはv1.5.4より前のGitのデフォルトでした)。 - status.short
-
git-status(1) でデフォルトで
--short
を有効にするには、trueに設定します。 オプション` --no-short` は、この変数よりも優先されます。 - status.branch
-
git-status(1) でデフォルトで
--branch
を有効にするには、trueに設定します。 オプション--no-branch
は、この変数よりも優先されます。 - status.aheadBehind
-
非磁器コマンドステータス形式(non-porcelain status formats)の git-status(1) で、デフォルトで
--ahead-behind
を有効にするにはtrueに設定し、--no-ahead-behind
を有効にするにはfalseに設定します。 デフォルトはtrueです。 - status.displayCommentPrefix
-
trueに設定すると、 git-status(1) は各出力行の前にコメントプレフィックスを挿入します(
core.commentChar
で始まります。つまりデフォルトでは#
です)。 これは、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
に設定すると、基本的な名前変更の検出が有効になります。copies
またはcopy
に設定されている場合、Gitはコピーも検出します。 デフォルトは diff.renames の値です。 - status.showStash
-
trueに設定すると、 git-status(1) は現在stashされているエントリの数を表示します。 デフォルトはfalseです。
- status.showUntrackedFiles
-
デフォルトでは、 git-status(1) と git-commit(1) は、現在Gitによって追跡されていないファイルを表示します。 追跡されていないファイルのみを含むディレクトリは、ディレクトリ名のみで表示されます。 追跡されていないファイルを表示するということは、Gitがリポジトリ全体のすべてのファイルを lstat() する必要があることを意味します。これは、一部のシステムでは低速になる可能性があります。 したがって、この変数は、コマンドが追跡されていないファイルを表示する方法を制御します。 可能な値は以下のとおりです:
-
no
- 追跡していないファイルを表示しない。 -
normal
- 追跡していないファイルとディレクトリを表示 -
all
- 追跡されていないディレクトリ内の個々のファイルも表示。
この変数が指定されていない場合、デフォルトで
normal
になります。 この変数は、 git-status(1) および git-commit(1) の-u
|--untracked-files
オプションでオーバーライドできます。 -
- status.submoduleSummary
-
デフォルトはfalseです。 これがゼロ以外の数値、またはtrue(-1または無制限と同じ)に設定されている場合、サブモジュールの要約が有効になり、変更されたサブモジュールのコミットの要約が表示されます(git-submodule(1) の
--summary-limit
オプションを参照してください)。diff.ignoreSubmodules
がall
に設定されている場合、またはsubmodule.<name>.ignore=all
であるサブモジュールに対してのみ、要約出力コマンドが抑制されることに注意してください。 そのルールの唯一の例外は、statusとcommitが、ステージされたサブモジュールの変更を表示することです。 無視されたサブモジュールの概要も表示するには、--ignore-submodules=dirty
コマンドラインオプションまたはgit submodule summary
コマンドを使用できます。これは同様の出力を表示しますが、これらの設定を尊重しません。 - 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コマンドの説明を参照してください。 - submodule.<name>.url
-
サブモジュールのURL。 この変数は、
git submodule init
を介して.gitmodules
ファイルから git config にコピーされます。 ユーザーは、git submodule update
を介してサブモジュールを取得する前に、構成されたURLを変更できます。submodule.<name>.active
もsubmodule.active
も設定されていない場合、この変数の存在は、サブモジュールがgitコマンドに関係するかどうかを示すためのフォールバックとして使用されます。 詳細については、 git-submodule(1)および gitmodules(5) を参照してください。 - submodule.<name>.update
-
影響を受ける唯一のコマンドである
git submodule update
によってサブモジュールが更新される方法。git checkout --recurse-submodules
などの他のコマンドは影響を受けません。git submodule
がサブモジュールと対話する唯一のコマンドであった場合、これは歴史的な理由で存在します。submodule.active`や `pull.rebase
などの設定はより具体的です。 これは、gitmodules(5) ファイルからgit submodule init
によって入力されます。 git-submodule(1) のupdateコマンドの説明を参照してください。 - submodule.<name>.branch
-
git submodule update --remote
によって使用されるサブモジュールのリモートブランチ名。 このオプションを設定すると、.gitmodules
ファイルにある値が上書きされます。 詳細については、 git-submodule(1) および gitmodules(5) を参照してください。 - submodule.<name>.fetchRecurseSubmodules
-
このオプションは、このサブモジュールの再帰的フェッチを制御するために使用できます。
--[no-]recurse-submodules
コマンドラインオプションを使用してgit fetch
とgit pull
をオーバーライドすることでオーバーライドできます。 この設定は、 gitmodules(5) ファイルの設定を上書きします。 - submodule.<name>.ignore
-
どのような状況で
git status
とdiffファミリーがサブモジュールを変更済みとして表示するかを定義します。all
に設定すると、変更されたとは見なされません(ただし、ステータスの出力に表示され、ステージングされるとコミットされます)。dirty
は、サブモジュールの作業ツリーに対するすべての変更を無視し、差異のみを取ります。 サブモジュールのHEADと、スーパープロジェクトに記録されたコミットの間を考慮に入れます。untracked
はさらに、作業ツリー内の変更された追跡ファイルを持つサブモジュールを表示させます。none
(設定されていない場合のデフォルト)を使用すると、作業ツリーに追跡されていないファイルが変更されたサブモジュールも表示されます。 この設定は、このサブモジュールの.gitmodules`で行われた設定を上書きします。両方の設定は、 `--ignore-submodules
オプションを使用してコマンドラインで上書きできます。git submodule
コマンドは、この設定の影響を受けません。 - submodule.<name>.active
-
サブモジュールがgitコマンドに関係するかどうかを示すブール値。 この構成オプションは、
submodule.active
構成オプションよりも優先されます。 詳細については、 gitsubmodules(7) を参照してください。 - submodule.active
-
サブモジュールが git コマンドの対象かどうかを判断するためにサブモジュールのパスと照合するために使用される pathspec を含む繰り返しフィールド。詳細は gitsubmodules(7) を参照してください。
- submodule.recurse
-
コマンドがデフォルトで
--recurse-submodules
オプションを有効にするかどうかを示すブール値。 デフォルトは false です。true に設定すると、
--no-recurse-submodules
オプションで非アクティブ化できます。 このオプションがない一部の Git コマンドは、submodule.recurse
の影響を受ける上記のコマンドの一部を呼び出す可能性があることに注意してください。 たとえば、git remote update
はgit fetch
を呼び出しますが、--no-recurse-submodules
オプションはありません。 これらのコマンドの回避策は、git -c submodule.recurse=0
を使用して構成値を一時的に変更することです。以下のリストは、
--recurse-submodules
を受け入れるコマンドと、それらがこの設定でサポートされているかどうかを示しています。-
checkout、fetch、grep、pull、push、read-tree、reset、restore、switch は常にサポートされています。
-
clone
とls-files
はサポートされていません。 -
branch
は、submodule.propagateBranches
が有効な場合にのみサポートされます
-
- submodule.propagateBranches
-
[実験的]
--recurse-submodules
またはsubmodule.recurse=true
を使用するときに分岐サポート(branching support)を有効にするブール値。 これを有効にすると、特定のコマンドが--recurse-submodules
を受け入れるようになり、すでに--recurse-submodules
を受け入れている特定のコマンドが分岐(branches)を考慮するようになります。 デフォルトは false です。 - submodule.fetchJobs
-
同時に フェッチ/クローン されるサブモジュールの数を指定します。 正の整数を使用すると、その数までのサブモジュールを並列にフェッチできます。 値0は、適切なデフォルトを提供します。 設定されていない場合、デフォルトで1になります。
- submodule.alternateLocation
-
サブモジュールがcloneされるときに、サブモジュールがalternateを取得する方法を指定します。 可能な値は
no
、superproject
です。 デフォルトでは、参照を追加しないno
が想定されています。 値がsuperproject
に設定されている場合、cloneされるサブモジュールは、スーパープロジェクトのalternates locationを基準にしてalternates locationを計算します。 - submodule.alternateErrorStrategy
-
submodule.alternateLocation
を介して計算されたサブモジュールのalternateでエラーを処理する方法を指定します。 可能な値はignore
、info
、die
です。デフォルトはdie
です。ignore
またはinfo
に設定されていて、計算されたalternateにエラーがある場合、alternateが指定されていないかのようにクローンが進行することに注意してください。 - tag.forceSignAnnotated
-
作成された注釈付きタグをGPG署名するかどうかを指定するブール値。 コマンドラインで
--annotate
が指定されている場合、このオプションよりも優先されます。 - tag.sort
-
この変数は、 git-tag(1) によって表示されるときのタグの並べ替え順序を制御します。
--sort=<value>
オプションが指定されていない場合、この変数の値がデフォルトとして使用されます。 - tag.gpgSign
-
すべてのタグをGPG署名するかどうかを指定するブール値。 自動スクリプトで実行しているときにこのオプションを使用すると、多数のタグが署名される可能性があります。 したがって、あなたは、エージェントを使用して、gpgパスフレーズを毎回入力しないようにするのが便利です。 このオプションは、
-u<keyid>
または--local-user=<keyid>
オプションによって有効にされるタグ署名の動作には影響しないことに注意してください。 - tar.umask
-
この変数は、tarアーカイブエントリの許可ビットを制限するために使用できます。デフォルトは0002で、ワールド書き込みビット(world write bit)をオフにします。 特別な値 "user" は、アーカイブユーザーのumaskが代わりに使用されることを示します。 umask(2) および git-archive(1) を参照してください。
trace2構成設定は、システムおよびグローバル構成ファイルからのみ読み取られます。 リポジトリのローカルおよびワークツリー構成ファイルと -c
コマンドライン引数は尊重されません。
- trace2.normalTarget
-
この変数は、通常のターゲット(normal target)宛先を制御します。
GIT_TRACE2
環境変数によってオーバーライドされる可能性があります。 - trace2.perfTarget
-
この変数は、パフォーマンスターゲットの宛先を制御します。
GIT_TRACE2_PERF
環境変数によってオーバーライドされる可能性があります。 - trace2.eventTarget
-
この変数は、イベントターゲットの宛先を制御します。
GIT_TRACE2_EVENT
環境変数によってオーバーライドされる可能性があります。-
0
orfalse
- ターゲットを無効にします。 -
1
ortrue
-STDERR
に書き出します。 -
[2-9]
- すでに開いているファイル・デスクリプターに書き出します。 -
<absolute-pathname>
- appendモードでファイルに書き込みます。ターゲットがすでに存在し、ディレクトリである場合、トレースは指定のディレクトリの下のファイル(プロセスごとに1つ)に書き込まれます。 -
af_unix:[<socket_type>:]<absolute-pathname>
- Unixドメインソケットに書き出します(それらをサポートするプラットフォーム上であれば)。ソケットタイプはstream
またはdgram
のいずれかです。省略した場合、Gitは両方を試します。
-
- trace2.normalBrief
-
ブール値。 trueの場合、
time
とfilename
とline
フィールドは通常の出力(normal output)から省略されます。GIT_TRACE2_BRIEF
環境変数によってオーバーライドされる可能性があります。 デフォルトはfalseです。 - trace2.perfBrief
-
ブール値。 trueの場合、
time
とfilename
とline
フィールドはPERF出力から省略されます。GIT_TRACE2_PERF_BRIEF
環境変数によってオーバーライドされる可能性があります。 デフォルトはfalseです。 - trace2.eventBrief
-
ブール値。 trueの場合、
time
とfilename
とline
フィールドはイベント出力から省略されます。GIT_TRACE2_EVENT_BRIEF
環境変数によってオーバーライドされる可能性があります。 デフォルトはfalseです。 - trace2.eventNesting
-
整数。 イベント出力でネストされた領域(region)の必要な深さを指定します。この値より深い領域は省略されます。
GIT_TRACE2_EVENT_NESTING
環境変数によってオーバーライドされる可能性があります。 デフォルトは2です。 - trace2.configParams
-
trace2出力に記録する必要がある「重要な」構成設定のパターンのコンマ区切りリスト。 たとえば、
core.*,remote.*.url
を指定すると、trace2の出力には、構成された各リモートを一覧表示するイベントが含まれます。GIT_TRACE2_CONFIG_PARAMS
環境変数によってオーバーライドされる可能性があります。 デフォルトでは設定されていません。 - trace2.envVars
-
trace2出力に記録する必要がある「重要な」環境変数のコンマ区切りリスト。 たとえば、
GIT_HTTP_USER_AGENT,GIT_CONFIG
を指定すると、trace2出力に、(いずれも設定されていると仮定して、)HTTPユーザーエージェントのオーバーライドとGit構成ファイルの場所をリストするイベントが含まれます。GIT_TRACE2_ENV_VARS
環境変数によってオーバーライドされる可能性があります。 デフォルトでは設定されていません。 - trace2.destinationDebug
-
ブール値。 trueの場合、トレースターゲットの宛先を書き込み用に開くことができない場合、Gitはエラーメッセージを出力します。 デフォルトでは、これらのエラーは抑制され、トレースは黙って無効になっています。
GIT_TRACE2_DST_DEBUG
環境変数によってオーバーライドされる可能性があります。 - trace2.maxFiles
-
整数。 トレースファイルをターゲットディレクトリに書き込むとき、この数のファイルを超える場合は、追加のトレースを書き込まないでください。 代わりに、このディレクトリへのそれ以上のトレースをブロックする番兵ファイル(sentinel file)を作成します。 デフォルトは0で、このチェックを無効にします。
- transfer.credentialsInUrl
-
構成された URL には、
<protocol>://<user>:<password>@<domain>/<path>
の形式で平文(plaintext)の資格情報(credentials)を含めることができます。 (git-credential(1) の使用を優先して、)そのような構成の使用を警告または禁止することができます。 これは、 git-clone(1) や git-fetch(1) やgit-push(1) や その他の構成された URL の直接使用で使用されます。注意: これは現在、
remote.<name>.url
構成での資格情報(credentials)の検出(detect)に限定されていることに注意してください。remote.<name>.pushurl
構成での資格情報の検出は行われません。これを有効にして、不注意による資格情報(credentials)の公開を防ぐことができます。 それがなぜかを以下の例で説明します:
-
git を実行している OS またはシステムでは、ユーザー名やパスワードが保存されている構成ファイルのアクセス許可を構成する方法が提供されていないか、許可されていない場合があります。
-
たとえ許可があったとしても、そのようなデータを「保存」すると、他の方法で危険にさらされる可能性があります。たとえばバックアップ処理によって、データが別のシステムにコピーされる場合があります。
-
git プログラムは、完全な URL をコマンドラインの引数として互いに渡します。つまり、他のユーザーが他のユーザーの完全なプロセス一覧を見ることができる OS やシステムでは、認証情報(credentials)が他のユーザーに公開されることになるのです。 linuxでは、 procfs(5) で文書化されている
hidepid
設定で、こういう振る舞いに設定することができます。もし、このような配がないのであれば、 gitの設定ファイルに機密データを保存することによる認証情報の漏洩を心配する必要はないでしょう。さてそれではこの機能を使用する場合は、
transfer.credentialsInUrl
を以下のいずれかの値に設定します: -
allow
(デフォルト): Git は警告なしでアクティビティを続行します。 -
warn
: Git は、平文(plaintext)の資格情報(credential)で URL をパースするときにstderr
に警告メッセージを書き込みます。 -
die
: Git は、 平文(plaintext)の資格情報(credential)で URL をパースするときに、失敗メッセージをstderr
に書き込みます。
-
- transfer.fsckObjects
-
fetch.fsckObjects
またはreceive.fsckObjects
が設定されていない場合、代わりにこの変数の値が使用されます。デフォルトはfalseです。設定すると、不正な形式のオブジェクトまたは存在しないオブジェクトへのリンクの場合、フェッチまたは受信は中止されます。 さらに、レガシー問題(
fsck.<msg-id>
を参照)を含む、.GIT
ディレクトリや悪意のある.gitmodules
ファイルの存在などの潜在的なセキュリティの問題(詳細については、v2.2.1およびv2.17.1のリリースノートを参照してください)など、他のさまざまな問題がチェックされます。 その他の健全性とセキュリティのチェックが、将来のリリースで追加される可能性があります。受信側では、fsckObjects に障害が発生すると、これらのオブジェクトに到達できなくなります。 git-receive-pack(1) の「QUARANTINE ENVIRONMENT」を参照してください。 一方、フェッチ側では、不正な形式のオブジェクトはリポジトリで参照されない(unreferenced)ままになります。
fetch.fsckObjects
実装は隔離されていない(non-quarantine nature)ため、receive.fsckObjects
のようにオブジェクトストアをクリーンな状態に保つことはできません。オブジェクトが解凍されると、オブジェクトストアに書き込まれるため、「フェッチ」が失敗したにもかかわらず、悪意のあるオブジェクトが導入される場合があります。オブジェクトストアにすでに書き込まれているオブジェクトではなく、新しい着信オブジェクトのみがチェックされるため、後続の「フェッチ」が成功するだけです。 この振る舞いの違いは信頼されるべきではありません。将来的には、そのようなオブジェクトは「フェッチ」のために隔離される可能性があります。
今のところ、「プッシュ」と同じ保護が必要な場合、疑り深い人(paranoid)は検疫環境をエミュレートする方法を見つける必要があります。 例えば、内部ミラーの場合、2つのステップでミラーリングを実行します。信頼できないオブジェクトをフェッチするために1ステップ、そして次に、別の内部リポジトリに「プッシュ」(隔離を使用します)を実行する2ステップ目です。内部クライアントにこのプッシュ先リポジトリを消費させ、または、内部フェッチを禁止し、完全な
fsck
が実行された場合にのみ許可します(その間に新しいフェッチは発生しません)。 - transfer.hideRefs
-
文字列
receive-pack
とupload-pack
は、最初の広告から除外するrefを決定するために使用します。 複数のプレフィックス文字列を指定するには、複数の定義を使用します。 この変数の値にリストされている階層の下にあるrefは除外され、git push
またはgit fetch
に応答するときに非表示になります。 この構成のプログラム固有のバージョンについては、receive.hideRefs
およびuploadpack.hideRefs
を参照してください。あなたは ref名の前に
!
を含めてエントリを無効にし、以前のエントリで非表示としてマークされていた場合でも、明示的に公開することもできます。 複数の非表示ref値がある場合、後のエントリが前のエントリを上書きします(そして、より具体的な構成ファイルのエントリは、より具体的でないものを上書きします)。名前空間が使用されている場合、名前空間プレフィックスは、
transfer.hiderefs
パターンと照合される前に、各参照から削除されます。 削除する前に参照を一致させるには、参照名の前に^
を追加します。!
と^
を組み合わせる場合は、最初に!
を指定する必要があります。たとえば、
refs/heads/master
がtransfer.hideRefs
で指定され、現在の名前空間がfoo
の場合、refs/namespaces/foo/refs/heads/master
は広告から省略されます。uploadpack.allowRefInWant
が設定されている場合、upload-pack
は、プロトコルバージョン2のfetch
コマンドのwant-ref refs/heads/master
で、refs/namespaces/foo/refs/heads/master
が存在しないかのように扱います。 一方、receive-pack`は、その名前(いわゆる `.have
行)を指定せずに、refが指しているオブジェクトIDを広告します。refを非表示にしても、 gitnamespaces(7)のマニュアルページの「SECURITY」セクションで説明されている手法を使用して、クライアントがターゲットオブジェクトを盗むことができる場合があります。よって、プライベートデータは別のリポジトリに保持するのが最良です。
- transfer.unpackLimit
-
fetch.unpackLimit
またはreceive.unpackLimit
が設定されていない場合、代わりにこの変数の値が使用されます。 デフォルト値は100です。 - transfer.advertiseSID
-
ブール値。 trueの場合、クライアントプロセスとサーバープロセスは、一意のセッションIDをリモートの対応するプロセスに広告します。 デフォルトはfalseです。
- transfer.bundleURI
-
true
の場合、ローカルのgit clone
コマンドは、 Git プロトコルを介してクローン作業を続行する前に、 (広告(advertise)されている場合)リモート・サーバーにバンドル情報を要求し、 バンドルをダウンロードします。 デフォルトはfalse
です。 - uploadarchive.allowUnreachable
-
trueの場合、クライアントが
git archive --remote
を使用して、ref先端から到達可能かどうかに関係なく、任意のツリーを要求できるようにします。詳細については、 git-upload-archive(1)の「SECURITY」セクションの説明を参照してください。デフォルトはfalse
です。 - uploadpack.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、upload-pack
にのみ適用されます(したがって、プッシュではなくフェッチにのみ影響します)。git fetch
で隠しref(hidden ref)をフェッチしようとすると失敗します。uploadpack.allowTipSHA1InWant
も参照してください。 - uploadpack.allowTipSHA1InWant
-
uploadpack.hideRefs
が有効な場合、upload-pack
が非表示の参照の先端にあるオブジェクトを要求するフェッチ要求を受け入れることを許可します(デフォルトでは、そのような要求は拒否されます)。uploadpack.hideRefs
も参照してください。 これが false であっても、クライアントは、 gitnamespaces(7) のマニュアルページの「SECURITY」セクションで説明されている手法を使用してオブジェクトを盗むことができる場合があります。プライベートデータを別のリポジトリに保持することをお勧めします。 - uploadpack.allowReachableSHA1InWant
-
upload-pack
が、任意の参照先端から到達可能なオブジェクトを要求するフェッチ要求を受け入れることを許可します。 ただし、オブジェクトの到達可能性の計算には計算コストがかかることに注意してください。 デフォルトはfalse
です。 これが false であっても、クライアントは、 gitnamespaces(7) のマニュアルページの「SECURITY」セクションで説明されている手法を使用してオブジェクトを盗むことができる場合があります。 プライベートデータを別のリポジトリに保持することをお勧めします。 - uploadpack.allowAnySHA1InWant
-
upload-pack
が、オブジェクトを要求するフェッチ要求を受け入れることを許可します。 デフォルトはfalse
です。 - uploadpack.keepAlive
-
upload-pack
がpack-objects
を開始したとき、pack-objects
がパックを準備している間は黙っている期間があるかもしれません。 通常は進行状況情報を出力しますが、フェッチに--quiet
を使用した場合、pack-objects
はパックデータが開始するまで何も出力しません。 一部のクライアントとネットワークは、サーバーがハングしてあきらめていると見なす場合があります。 このオプションを設定すると、upload-pack
はuploadpack.keepAlive
秒ごとに空のキープアライブパケットを送信するように指示されます。 このオプションを0に設定すると、キープアライブパケットが完全に無効になります。 デフォルトは5秒です。 - uploadpack.packObjectsHook
-
このオプションが設定されている場合、
upload-pack
がクライアントのパックファイルを作成するためにgit pack-objects
を実行しようとすると、代わりにこのシェルコマンドが実行されます。pack-objects
コマンドとそれが実行するであろう引数(最初のgit pack-objects
を含む)がシェルコマンドに追加されます。 フックのstdinとstdoutは、pack-objects
自体が実行されたかのように扱われます。 つまり、upload-pack
は、pack-objects
を対象とした入力をフックに送り、stdoutで完成したpackfileを期待します。注意: この構成変数は、保護された構成で指定されている場合にのみ尊重されることに注意してください([SCOPES] 参照)。 これは、信頼されていないリポジトリからのフェッチに対する安全対策です。
- uploadpack.allowFilter
-
このオプションが設定されている場合、
upload-pack
は部分クローン(partial clone)および部分フェッチオブジェクト(partial fetch object)のフィルタリングをサポートします。 - uploadpackfilter.allow
-
未指定のオブジェクトフィルターのデフォルト値を提供します(下記構成変数参照)。
true
に設定すると、将来追加されるすべてのフィルターも有効になります。 デフォルトはtrue
です。 - uploadpackfilter.<filter>.allow
-
<filter>
に対応するオブジェクトフィルターを明示的に許可または禁止します。ここで、<filter>
は次のいずれかになります:blob:none
,blob:limit
,object:type
,tree
,sparse:oid
,combine
。 組み合わフィルターを使用する場合は、combine
とすべてのネストされたフィルターの種類の両方を許可する必要があります。 デフォルトはuploadpackfilter.allow
です。 - uploadpackfilter.tree.maxDepth
-
<n>
がuploadpackfilter.tree.maxDepth
の値以下の場合にのみ、--filter=tree:<n>
を許可します。 設定されている場合、この構成変数がすでに設定されていない限り、これはuploadpackfilter.tree.allow=true
も意味します。 設定されていない場合は効果がありません。 - uploadpack.allowRefInWant
-
このオプションが設定されている場合、
upload-pack
はプロトコルバージョン2のfetch
コマンドのref-in-want
機能をサポートします。 この機能は、レプリケーションの遅延のために、refが指すOIDについて同じビューを持たない可能性がある負荷分散サーバーの利益を目的としています。 - url.<base>.insteadOf
-
この値で始まるURLは、代わりに<base>で始まるように書き換えられます。 あるサイトが多数のリポジトリを提供し、それらを複数のアクセス方法で提供しており、一部のユーザーが異なるアクセス方法を使用する必要がある場合、この機能は、ユーザーが任意の同等のURLを指定し、Gitが自動的に特定のユーザーにとって最適な代替URLに書き換えることを可能にします。 複数の insteadOf 文字列が特定のURLに一致する場合、最も長い一致が使用されます。
注意: プロトコルの制限は、書き換えられたURLに適用されることに注意してください。 リライトによってカスタムプロトコルまたはリモートヘルパーを使用するようにURLが変更された場合は、リクエストを許可するように
protocol.*.allow
構成を調整する必要があります。 特に、サブモジュールに使用する予定のプロトコルは、デフォルトのuser
ではなくalways
に設定する必要があります。 上記protocol.allow
の説明を参照してください。 - url.<base>.pushInsteadOf
-
この値で始まるURLはプッシュされません。代わりに、<base>で始まるように書き直され、結果のURLがにプッシュされます。 あるサイトが多数のリポジトリを提供し、それらを複数のアクセス方法で提供し、そのうちのいくつかはプッシュを許可しない場合、この機能は、サイト上で見たことのないリポジトリであっても、プル専用のURLを指定して、Gitが自動的に適切なURLを使ってプッシュすることを可能にします。 複数の pushInsteadOf 文字列が特定のURLに一致する場合、最も長い一致が使用されます。 リモートに明示的な pushurl がある場合、Gitはそのリモートのこの設定を無視します。
- user.name
- user.email
- author.name
- author.email
- committer.name
- committer.email
-
user.name
変数とuser.email
変数は、コミットオブジェクトのauthor
フィールドとcommitter
フィールドに何が入るかを決定します。author
またはcommitter
を変更する必要がある場合は、author.name
またはauthor.email
またはcommitter.name
またはcommitter.email
変数を設定できます。 また、これらはすべて、GIT_AUTHOR_NAME
またはGIT_AUTHOR_EMAIL
またはGIT_COMMITTER_NAME
またはGIT_COMMITTER_EMAIL
またはEMAIL
環境変数によってオーバーライドできます。注意: これらの変数の
name
形式は、通常、何らかの形式の個人名を参照していることに注意してください。 これらの設定の詳細については、 git-commit(1) および git(1) の「environment variables」セクションを参照してください。代わりに認証資格情報(authentication credentials)を探している場合は、credential.username
オプションを参照してください。 - user.useConfigOnly
-
user.email
とuser.name
のデフォルトを推測しようとせず、代わりに構成からのみ値を取得するようにGitに指示します。 たとえば、複数のメールアドレスがあり、リポジトリごとに異なるアドレスを使用する場合、 グローバル設定でこの設定オプションをtrue
に設定し、名前を指定すると、 Gitは、新しく複製されたリポジトリで新しくコミットを行う前に、電子メールを設定するように求めるプロンプトを表示します。 デフォルトは`false`です。 - user.signingKey
-
git-tag(1) または git-commit(1) が、署名されたタグまたは署名されたコミットを作成するときに自動的に必要なキーを選択していない場合、この変数でデフォルトの選択を上書きできます。 このオプションは変更されずに gpg の
--local-user
パラメータに渡されるため、gpg がサポートする任意の方法を使用してキーを指定できます。 gpg.formatがssh
に設定されている場合、 ssh-agent を使用したときの秘密鍵または公開鍵へのパスを格納することができます。 あるいは、key::
で始まる公開鍵を直接含めることもできます(例:key::ssh-rsa XXXXXX identifier
)。 秘密鍵は、ssh-agent 経由で入手できる必要があります。 設定されていない場合、 git は gpg.ssh.defaultKeyCommand(例:ssh-add -L
) を呼び出し、利用可能な最初のキーを使用しようとします。 下位互換性のために、key::ssh-rsa XXXXXX identifier
などのssh-
で始まる生の鍵はkey::ssh-rsa XXXXXX identifier
として扱われますが、この形式は非推奨です。 代わりにkey::
形式を使用してください。 - versionsort.prereleaseSuffix (非推奨)
-
versionsort.suffix
の非推奨のエイリアス。versionsort.suffix
が設定されている場合は無視されます。 - versionsort.suffix
-
linkgit:git-tag [1]でバージョンの並べ替えが使用されている場合でも、基本バージョンが同じで接尾辞が異なるタグ名は辞書式順序で並べ替えられます。 例えば、メインリリースの後に表示されるプレリリースタグ(例:
1.0
の後の1.0-rc1
)。 この変数を指定して、異なる接尾辞を持つタグのソート順を決定できます。この変数に単一の接尾辞(suffix)を指定すると、その接尾辞を含むタグ名は、対応するメインリリースの前に表示されます。 例えば、変数が
-rc
に設定されている場合、すべての1.0-rcX
タグは1.0
の前に表示されます。 複数回指定した場合、1つのサフィックスにつき1回だけ、設定中のサフィックスの順番でタグ名の並べ替え順が決定されます。 例えば、構成で-pre`が `-rc
の前に表示されている場合、すべての1.0-preX
タグが1.0-rcX
タグの前にリストされます。 さまざまな接尾辞を持つタグに対するメインリリースタグの配置順序は、他の接尾辞群の中で空の接尾辞を指定することで決定できます。 例えば、接尾辞 「-rc」と「」と「-ck」と「-bfs」がこの順序で構成に表示される場合、すべてのv4.8-rcX`タグが最初にリストされ、次に `v4.8
がリストされ、その次がv4.8-ckX
で、最後にv4.8-bfsX
です。複数の接尾辞(suffixes)が同じタグ名に一致する場合、そのタグ名は、タグ名の最初の位置から始まる接尾辞に従って並べ替えされます。 一致する複数の異なる接尾辞がその最も早い位置から始まる場合、そのタグ名はそれらの接尾辞の最長のものに従って並べ替えされます。 異なる接尾辞間の並べ替え順は、それらが複数の構成ファイルに渡る場合は未定義です。
- web.browser
-
一部のコマンドで使用できるWebブラウザを指定します。 現在、 git-instaweb(1) と git-help(1) のみが使用できます。
- worktree.guessRemote
-
ブランチが指定されておらず、
-b
や ` -B` や--detach
のいずれも使用されていない場合、git worktree add
はデフォルトでHEADから新しいブランチを作成します。worktree.guessRemote
がtrueに設定されている場合、worktree add
は、名前が新しいブランチ名と一意に一致するリモート追跡ブランチを見つけようとします。 そのようなブランチが存在する場合、それはチェックアウトされ、新しいブランチの「アップストリーム」として設定されます。 そのような一致が見つからない場合は、フォールバックして現在のHEADから新しいブランチを作成します。
BUGS
非推奨の [section.subsection]
構文を使用する場合、サブセクションに少なくとも1つの大文字が指定されていると、値を変更すると、変更ではなく複数行のキーが追加されます。たとえば、設定が以下のようになっている場合
[section.subsection]
key = value1
git config section.Subsection.key value2
を実行すると、以下のようになります。
[section.subsection]
key = value1
key = value2
GIT
Part of the git(1) suite