設定と構成
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバー管理
-
2.47.0
10/06/24
-
2.46.2
09/23/24
-
2.46.1
09/13/24
-
2.46.0
07/29/24
- 2.45.1 → 2.45.2 変更なし
-
2.45.0
04/29/24
- 2.44.1 → 2.44.2 変更なし
-
2.44.0
02/23/24
- 2.43.2 → 2.43.5 変更なし
-
2.43.1
02/09/24
-
2.43.0
11/20/23
- 2.42.2 → 2.42.3 変更なし
-
2.42.1
11/02/23
-
2.42.0
08/21/23
- 2.41.1 → 2.41.2 変更なし
-
2.41.0
06/01/23
- 2.40.1 → 2.40.3 変更なし
-
2.40.0
03/12/23
- 2.39.1 → 2.39.5 変更なし
-
2.39.0
12/12/22
- 2.38.3 → 2.38.5 変更なし
-
2.38.2
12/11/22
-
2.38.1
10/07/22
-
2.38.0
10/02/22
- 2.37.5 → 2.37.7 変更なし
-
2.37.4
10/06/22
- 2.37.3 変更なし
-
2.37.2
08/11/22
- 2.37.1 変更なし
-
2.37.0
06/27/22
- 2.36.4 → 2.36.6 変更なし
-
2.36.3
10/06/22
-
2.36.2
06/23/22
- 2.36.1 変更なし
-
2.36.0
04/18/22
- 2.35.6 → 2.35.8 変更なし
-
2.35.5
10/06/22
-
2.35.4
06/23/22
-
2.35.3
04/13/22
-
2.35.2
03/23/22
- 2.35.1 変更なし
-
2.35.0
01/24/22
- 2.34.6 → 2.34.8 変更なし
-
2.34.5
10/06/22
-
2.34.4
06/23/22
-
2.34.3
04/13/22
-
2.34.2
03/23/22
- 2.34.1 変更なし
-
2.34.0
11/15/21
- 2.33.6 → 2.33.8 変更なし
-
2.33.5
10/06/22
-
2.33.4
06/23/22
-
2.33.3
04/13/22
-
2.33.2
03/23/22
-
2.33.1
10/12/21
-
2.33.0
08/16/21
- 2.32.5 → 2.32.7 変更なし
-
2.32.4
10/06/22
-
2.32.3
06/23/22
-
2.32.2
04/13/22
-
2.32.1
03/23/22
-
2.32.0
06/06/21
- 2.31.6 → 2.31.8 変更なし
-
2.31.5
10/06/22
-
2.31.4
06/23/22
-
2.31.3
04/13/22
-
2.31.2
03/23/22
-
2.31.1
03/26/21
-
2.31.0
03/15/21
- 2.30.7 → 2.30.9 変更なし
-
2.30.6
10/06/22
-
2.30.5
06/23/22
-
2.30.4
04/13/22
-
2.30.3
03/23/22
- 2.30.2 変更なし
-
2.30.1
02/08/21
-
2.30.0
12/27/20
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
10/19/20
- 2.28.1 変更なし
-
2.28.0
07/27/20
- 2.27.1 変更なし
-
2.27.0
06/01/20
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
03/22/20
- 2.25.3 → 2.25.5 変更なし
-
2.25.2
03/17/20
-
2.25.1
02/17/20
-
2.25.0
01/13/20
- 2.24.1 → 2.24.4 変更なし
-
2.24.0
11/04/19
- 2.23.1 → 2.23.4 変更なし
-
2.23.0
08/16/19
- 2.22.2 → 2.22.5 変更なし
-
2.22.1
08/11/19
-
2.22.0
06/07/19
- 2.21.1 → 2.21.4 変更なし
-
2.21.0
02/24/19
- 2.20.1 → 2.20.5 変更なし
-
2.20.0
12/09/18
- 2.19.3 → 2.19.6 変更なし
-
2.19.2
11/21/18
- 2.19.1 変更なし
-
2.19.0
09/10/18
- 2.18.1 → 2.18.5 変更なし
-
2.18.0
06/21/18
- 2.17.1 → 2.17.6 変更なし
-
2.17.0
04/02/18
-
2.16.6
12/06/19
-
2.15.4
12/06/19
-
2.14.6
12/06/19
-
2.13.7
05/22/18
-
2.12.5
09/22/17
-
2.11.4
09/22/17
-
2.10.5
09/22/17
-
2.9.5
07/30/17
-
2.8.6
07/30/17
-
2.7.6
07/30/17
-
2.6.7
05/05/17
-
2.5.6
05/05/17
-
2.4.12
05/05/17
-
2.3.10
09/28/15
-
2.2.3
09/04/15
-
2.1.4
12/17/14
-
2.0.5
12/17/14
概要
git config list [<file-option>] [<display-option>] [--includes] git config get [<file-option>] [<display-option>] [--includes] [--all] [--regexp] [--value=<value>] [--fixed-value] [--default=<default>] <name> git config set [<file-option>] [--type=<type>] [--all] [--value=<value>] [--fixed-value] <name> <value> git config unset [<file-option>] [--all] [--value=<value>] [--fixed-value] <name> <value> git config rename-section [<file-option>] <old-name> <new-name> git config remove-section [<file-option>] <name> git config edit [<file-option>] git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>]
説明
このコマンドを使用して、オプションのクエリ/設定/置換/アンセットを行うことができます。名前は実際にはセクションとキーをドットで区切ったものであり、値はエスケープされます。
--append
オプションを使用することで、オプションに複数の行を追加できます。複数の行にわたって発生する可能性のあるオプションを更新またはアンセットする場合、value-pattern
(--fixed-value
オプションが指定されていない限り、拡張正規表現です)を指定する必要があります。パターンに一致する既存の値のみが更新またはアンセットされます。パターンに一致しない行を処理する場合は、先頭に感嘆符 (!) を1つ追加します(例も参照してください)。ただし、これは--fixed-value
オプションを使用していない場合にのみ機能することに注意してください。
--type=<type>
オプションは、git config に、入力値と出力値が指定された <type> で正規化可能であることを保証するように指示します。--type=<type>
が指定されていない場合、正規化は実行されません。呼び出し元は、--no-type
を使用して既存の --type
指定子をアンセットできます。
読み込み時は、デフォルトでシステム、グローバル、リポジトリローカルの構成ファイルから値が読み込まれ、--system
、--global
、--local
、--worktree
、--file <filename>
オプションを使用して、その場所からのみ読み込むようにコマンドに指示できます(ファイルを参照)。
書き込み時は、新しい値はデフォルトでリポジトリローカルの構成ファイルに書き込まれ、--system
、--global
、--worktree
、--file <filename>
オプションを使用して、その場所に書き込むようにコマンドに指示できます(--local
と言うことができますが、それはデフォルトです)。
このコマンドは、エラー発生時にゼロ以外のステータスで失敗します。いくつかの終了コードは次のとおりです。
-
セクションまたはキーが無効です (ret=1)、
-
セクションまたは名前が指定されていません (ret=2)、
-
構成ファイルが無効です (ret=3)、
-
構成ファイルに書き込めません (ret=4)、
-
存在しないオプションをアンセットしようとしました (ret=5)、
-
複数の行が一致するオプションをアンセット/設定しようとしました (ret=5)、または
-
無効な正規表現を使用しようとしました (ret=6)。
成功すると、コマンドは終了コード 0 を返します。
使用可能なすべての構成変数のリストは、git help --config
コマンドを使用して取得できます。
コマンド
- list
-
構成ファイルに設定されているすべての変数とその値を一覧表示します。
- get
-
指定されたキーの値を出力します。キーが構成ファイルに複数回存在する場合は、最後の値を出力します。
--all
が指定されている場合は、キーに関連付けられているすべての値を出力します。キーが存在しない場合は、エラーコード 1 を返します。 - set
-
1つ以上の構成オプションの値を設定します。デフォルトでは、このコマンドは複数値の構成オプションの書き込みを拒否します。
--all
を渡すと、すべての複数値の構成オプションが新しい値で置き換えられ、--value=
を渡すと、値が指定されたパターンに一致するすべての構成オプションが置き換えられます。 - unset
-
1つ以上の構成オプションの値をアンセットします。デフォルトでは、このコマンドは複数値のキーのアンセットを拒否します。
--all
を渡すと、すべての複数値の構成オプションがアンセットされ、--value
を渡すと、値が指定されたパターンに一致するすべての構成オプションがアンセットされます。 - rename-section
-
指定されたセクションを新しい名前に変更します。
- remove-section
-
構成ファイルから指定されたセクションを削除します。
- edit
-
指定された構成ファイル(
--system
、--global
、--local
(デフォルト)、--worktree
、または--file <config-file>
)を編集するためにエディターを開きます。
オプション
- --replace-all
-
デフォルトの動作は、最大1行を置き換えることです。これにより、キー(およびオプションで
value-pattern
)に一致するすべての行が置き換えられます。 - --append
-
既存の値を変更せずに、オプションに新しい行を追加します。これは、
set
で--value=^$ を指定するのと同じです。 - --comment <message>
-
新しく作成された行または変更された行の最後にコメントを追加します。
If _<message>_ begins with one or more whitespaces followed by "#", it is used as-is. If it begins with "#", a space is prepended before it is used. Otherwise, a string " # " (a space followed by a hash followed by a space) is prepended to it. And the resulting string is placed immediately after the value defined for the variable. The _<message>_ must not contain linefeed characters (no multi-line comments are permitted).
- --all
-
get
を使用して、複数値のキーのすべての値を返します。 - --regexp
-
get
を使用して、名前を正規表現として解釈します。正規表現の一致は現在、大文字と小文字を区別し、セクション名と変数名は小文字に変換された正規化されたキーに対して行われますが、サブセクション名は変換されません。 - --url=<URL>
-
2つの部分からなる <name> を <section>.<key> として指定した場合、<URL> 部分が指定された URL と最もよく一致する <section>.<URL>.<key> の値が返されます(そのようなキーが存在しない場合、<section>.<key> の値がフォールバックとして使用されます)。<section> のみを name として指定した場合、セクション内のすべてのキーについてそうし、それらを一覧表示します。値が見つからない場合は、エラーコード 1 を返します。
- --global
-
オプションの書き込みの場合:リポジトリの
.git/config
ではなく、グローバルな~/.gitconfig
ファイルに書き込みます。このファイルが存在し、~/.gitconfig
ファイルが存在しない場合は、$XDG_CONFIG_HOME/git/config
ファイルに書き込みます。オプションの読み込みの場合:使用可能なすべてのファイルからではなく、グローバルな
~/.gitconfig
と$XDG_CONFIG_HOME/git/config
のみをファイルから読み込みます。ファイルも参照してください。
- --system
-
オプションの書き込みの場合:リポジトリの
.git/config
ではなく、システム全体の$(prefix)/etc/gitconfig
に書き込みます。オプションの読み込みの場合:使用可能なすべてのファイルからではなく、システム全体の
$(prefix)/etc/gitconfig
のみをファイルから読み込みます。ファイルも参照してください。
- --local
-
オプションの書き込みの場合:リポジトリの
.git/config
ファイルに書き込みます。これはデフォルトの動作です。オプションの読み込みの場合:使用可能なすべてのファイルからではなく、リポジトリの
.git/config
のみをファイルから読み込みます。ファイルも参照してください。
- --worktree
-
--local
と似ていますが、extensions.worktreeConfig
が有効になっている場合は、$GIT_DIR/config.worktree
が読み取られるか、またはそれに書き込まれます。有効になっていない場合は、--local
と同じです。メインの作業ツリーでは$GIT_DIR
は$GIT_COMMON_DIR
と等しくなりますが、他の作業ツリーでは$GIT_DIR/worktrees/<id>/
の形式になります。git-worktree[1] で、extensions.worktreeConfig
を有効にする方法を確認してください。 - -f <config-file>
- --file <config-file>
-
オプションの書き込みの場合:リポジトリの
.git/config
ではなく、指定されたファイルに書き込みます。オプションの読み込みの場合:利用可能なすべてのファイルではなく、指定されたファイルのみから読み込みます。
ファイルも参照してください。
- --blob <blob>
-
--file
に似ていますが、ファイルの代わりに指定されたblobを使用します。例えば、マスターブランチの.gitmodulesファイルの値を読み取るには、master:.gitmodulesを使用できます。「リビジョンの指定」セクション(gitrevisions[7])を参照して、blob名の指定方法のより完全なリストを確認してください。 - --fixed-value
-
value-pattern
引数と一緒に使用する場合、value-pattern
を正規表現ではなく正確な文字列として扱います。これにより、一致する名前/値のペアは、値がvalue-pattern
と完全に等しいものだけに制限されます。 - --type <type>
-
git configは、入力と出力が指定された型制約の下で有効であることを保証し、出力値を
<type>
の標準形式で正規化します。有効な
<type>
には以下が含まれます。-
bool:"true"または"false"のいずれかとして値を正規化します。
-
int:単純な10進数として値を正規化します。オプションのサフィックスk、m、またはgを使用すると、入力時に値が1024、1048576、または1073741824倍されます。
-
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
-
値やキーを出力するすべてのオプションについて、常にヌル文字(改行文字の代わりに)で値を終了します。キーと値の間の区切り文字として改行文字を使用します。これにより、改行を含む値などに混乱することなく、安全に出力の解析が可能になります。
- --name-only
-
list
またはget
の場合、設定変数の名前のみを出力します。 - --show-origin
-
クエリされたすべての設定オプションの出力に、オリジンの種類(ファイル、標準入力、blob、コマンドライン)と実際のオリジン(該当する場合は設定ファイルパス、参照、またはblob ID)を追加します。
- --show-scope
-
クエリされたすべての設定オプションの出力に、その値のスコープ(ワークツリー、ローカル、グローバル、システム、コマンド)を追加するという点で、
--show-origin
に似ています。 - --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
をフォールバックとして使用します。 - --[no-]includes
-
値を検索するときに、設定ファイル内の
include.*
ディレクティブを尊重します。特定のファイルが指定されている場合(例:--file
、--global
などを使用する場合)はoff
に、すべての設定ファイルを検索する場合はon
にデフォルト設定されます。 - --default <value>
-
get
を使用していて、要求された変数が検出されない場合、<value>がその変数に割り当てられた値であるかのように動作します。
非推奨モード
以下のモードは、サブコマンドに置き換えられました。新しい構文に移行することをお勧めします。
- git config <name>
-
git config get <name>
に置き換えられました。 - git config <name> <value> [<value-pattern>]
-
git config set [--value=<pattern>] <name> <value>
に置き換えられました。 - -l
- --list
-
git config list
に置き換えられました。 - --get <name> [<value-pattern>]
-
git config get [--value=<pattern>] <name>
に置き換えられました。 - --get-all <name> [<value-pattern>]
-
git config get [--value=<pattern>] --all <name>
に置き換えられました。 - --get-regexp <name-regexp>
-
git config get --all --show-names --regexp <name-regexp>
に置き換えられました。 - --get-urlmatch <name> <URL>
-
git config get --all --show-names --url=<URL> <name>
に置き換えられました。 - --get-color <name> [<default>]
-
git config get --type=color [--default=<default>] <name>
に置き換えられました。 - --add <name> <value>
-
git config set --append <name> <value>
に置き換えられました。 - --unset <name> [<value-pattern>]
-
git config unset [--value=<pattern>] <name>
に置き換えられました。 - --unset-all <name> [<value-pattern>]
-
git config unset [--value=<pattern>] --all <name>
に置き換えられました。 - --rename-section <old-name> <new-name>
-
git config rename-section <old-name> <new-name>
に置き換えられました。 - --remove-section <name>
-
git config remove-section <name>
に置き換えられました。 - -e
- --edit
-
git config edit
に置き換えられました。
ファイル
デフォルトでは、git configは複数のファイルから設定オプションを読み取ります。
- $(prefix)/etc/gitconfig
-
システム全体の構成ファイル。
- $XDG_CONFIG_HOME/git/config
- ~/.gitconfig
-
ユーザー固有の設定ファイル。XDG_CONFIG_HOME環境変数が設定されていないか空の場合、$HOME/.config/が$XDG_CONFIG_HOMEとして使用されます。
これらは「グローバル」設定ファイルとも呼ばれます。両方のファイルが存在する場合は、上記に示した順序で両方のファイルが読み取られます。
- $GIT_DIR/config
-
リポジトリ固有の設定ファイル。
- $GIT_DIR/config.worktree
-
これはオプションであり、$GIT_DIR/configに
extensions.worktreeConfig
が存在する場合にのみ検索されます。
-c
オプションを使用して、任意のgitコマンドを実行するときに追加の設定パラメータを提供することもできます。git[1]で詳細を確認してください。
利用可能なこれらのすべてのファイルからオプションが読み取られます。グローバル設定ファイルまたはシステム全体の構成ファイルが存在しないか、読み取れない場合は無視されます。リポジトリ設定ファイルが存在しないか、読み取れない場合、git configはゼロ以外のエラーコードで終了します。ファイルが読み取れない場合はエラーメッセージが表示されますが、ファイルが存在しない場合は表示されません。
ファイルは上記に示した順序で読み取られ、最後に検出された値が先に読み取られた値よりも優先されます。複数の値が取得される場合、すべてのファイルからキーのすべての値が使用されます。
デフォルトでは、オプションはリポジトリ固有の設定ファイルのみに書き込まれます。これはset
やunset
などのオプションにも影響することに注意してください。**git configは一度に1つのファイルのみを変更します。**
--file
オプションでファイルのパスを指定するか、--system
、--global
、--local
、または--worktree
で設定スコープを指定することで、読み取りまたは書き込みを行う設定ソースを制限できます。詳細については、上記OPTIONSを参照してください。
スコープ
各設定ソースは設定スコープ内にあります。スコープは以下のとおりです。
- 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を参照してください。
ほとんどの設定オプションは、定義されているスコープに関係なく尊重されますが、一部のオプションは特定のスコープでのみ尊重されます。詳細は、それぞれのオプションのドキュメントを参照してください。
環境
ファイルも参照してください。
- GIT_CONFIG_COUNT
- GIT_CONFIG_KEY_<n>
- GIT_CONFIG_VALUE_<n>
-
GIT_CONFIG_COUNT が正の値に設定されている場合、その数までのすべての環境変数ペア GIT_CONFIG_KEY_<n> と GIT_CONFIG_VALUE_<n> がプロセスの実行時設定に追加されます。設定ペアは0から始まるインデックスです。キーまたは値が欠けている場合はエラーとして扱われます。空の GIT_CONFIG_COUNT は GIT_CONFIG_COUNT=0 と同じように扱われ、ペアは処理されません。これらの環境変数は設定ファイル内の値を上書きしますが、`git -c` を介して渡される明示的なオプションによって上書きされます。
これは、共通の設定を持つ複数の git コマンドを生成する必要があるが、設定ファイルに依存できない場合(スクリプトを作成する場合など)に役立ちます。
- GIT_CONFIG
-
`git config` に`--file` オプションが指定されていない場合、`GIT_CONFIG` で指定されたファイルが`--file` を介して指定されたかのように使用されます。この変数は他の Git コマンドには影響せず、主に過去の互換性のためのものであり、`--file` オプションの代わりに使用することは一般的に推奨されません。
例
次のような .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 set core.filemode true
仮想的な proxy コマンドエントリには、適用する URL を区別するための接尾辞が実際にはあります。kernel.org のエントリを "ssh" に変更する方法は次のとおりです。
% git config set --value='for kernel.org$' core.gitproxy '"ssh" for kernel.org'
これにより、kernel.org のキー/値ペアのみが確実に置き換えられます。
renames のエントリを削除するには、次のようにします。
% git config unset diff.renames
マルチ変数(上記の core.gitproxy など)のエントリを削除する場合は、ちょうど1行の値に一致する正規表現を指定する必要があります。
指定されたキーの値をクエリするには、次のようにします。
% git config get core.filemode
または、マルチ変数をクエリするには
% git config get --value="for kernel.org$" core.gitproxy
マルチ変数のすべての値を知りたい場合は、次のようにします。
% git config get --all --show-names core.gitproxy
危険を冒しても構わない場合は、次のようにして**すべての** core.gitproxy を新しいものに置き換えることができます。
% git config set --all core.gitproxy ssh
ただし、デフォルトのプロキシ、つまり "for …" 接尾辞のない行のみを置き換えたい場合は、次のような操作を行います。
% git config set --value='! for ' core.gitproxy ssh
感嘆符を含む値のみに実際に一致させるには、次のようにする必要があります。
% git config set --value='[!]' section.key value
既存のものに変更を加えずに新しいプロキシを追加するには、次のようにします。
% git config set --append core.gitproxy '"proxy-command" for example.com'
スクリプトで設定からカスタマイズされた色を使用する例
#!/bin/sh WS=$(git config get --type=color --default="blue reverse" color.diff.whitespace) RESET=$(git config get --type=color --default="reset" "") echo "${WS}your whitespace color or blue reverse${RESET}"
https://weak.example.com
のURLでは、http.sslVerify
は false に設定され、それ以外のすべてのURLでは true
に設定されます。
% git config get --type=bool --url=https://good.example.com http.sslverify true % git config get --type=bool --url=https://weak.example.com http.sslverify false % git config get --url=https://weak.example.com http http.cookieFile /tmp/cookie.txt http.sslverify false
設定ファイル
Git 設定ファイルには、Git コマンドの動作に影響を与える多くの変数が含まれています。各リポジトリ内のファイル `.git/config` とオプションで `config.worktree` (git-worktree[1]の「設定ファイル」セクションを参照)は、そのリポジトリの設定を保存するために使用され、`$HOME/.gitconfig` は `.git/config` ファイルのフォールバック値としてユーザーごとの設定を保存するために使用されます。ファイル `/etc/gitconfig` は、システム全体のデフォルト設定を保存するために使用できます。
設定変数は、Git の plumbing コマンドと porcelain コマンドの両方で使用されます。変数はセクションに分割され、変数自体の完全修飾変数名は最後のドット区切りのセグメントであり、セクション名は最後のドットの手前のすべての部分です。変数名は大文字と小文字が区別されず、英数字と `-` のみが使用でき、英文字で始まる必要があります。一部の変数は複数回出現する可能性があります。その場合、変数は多値であると言います。
構文
構文は非常に柔軟で許容的です。このコンテキストでの空白文字とは、スペース文字(SP)と水平タブ(HT)であり、ほとんど無視されます。`#` と `;` の文字は、行末までのコメントを開始します。空行は無視されます。
ファイルはセクションと変数で構成されています。セクションは、角かっこ内のセクション名で始まり、次のセクションが始まるまで続きます。セクション名は、大文字と小文字が区別されません。セクション名には、英数字、`-`、`.` のみが使用できます。各変数はセクションに属している必要があります。つまり、変数の最初の設定の前にセクションヘッダーが存在する必要があります。
セクションはさらにサブセクションに分割できます。サブセクションを開始するには、その名前を二重引用符で囲み、セクション名からスペースで区切ってセクションヘッダーに入れます。以下の例を参照してください。
[section "subsection"]
サブセクション名は、大文字と小文字が区別され、改行とヌルバイト以外の任意の文字を含めることができます。二重引用符 `"` とバックスラッシュは、それぞれ `\"` と `\\` としてエスケープすることで含めることができます。他の文字の前にあるバックスラッシュは、読み取り時に削除されます。たとえば、`\t` は `t` として読み取られ、`\0` は `0` として読み取られます。セクションヘッダーは複数行にまたがることはできません。変数は、セクションまたは特定のサブセクションに直接属することができます。`[section "subsection"]` がある場合、`[section]` を持つことができますが、必ずしも必要ありません。
非推奨の `[section.subsection]` 構文もあります。この構文では、サブセクション名は小文字に変換され、大文字と小文字が区別されて比較されます。これらのサブセクション名は、セクション名と同じ制限に従います。
その他すべての行(セクションヘッダーの後にある行の残りの部分)は、`name = value` の形式(または変数がブール値の "true" であることを示す略記の `name`)で変数を設定するものとして認識されます。変数名は、大文字と小文字が区別されず、英数字と `-` のみが使用でき、英文字で始まる必要があります。
`name`、`=`、`value` の周囲の空白文字は破棄されます。`value` 内の内部空白文字は、そのまま保持されます。`#` または `;` で始まり、行末まで続くコメントは破棄されます。値を定義する行は、バックスラッシュ(`\`)で終わらせることで次の行に続けることができます。バックスラッシュと行末文字は破棄されます。
`value` に先頭または末尾の空白文字を含める必要がある場合は、二重引用符(`"`)で囲む必要があります。二重引用符の内側では、二重引用符(`"`)とバックスラッシュ(`\`)の文字をエスケープする必要があります。`"` には `\"` を、`\` には `\\` を使用します。
次のエスケープシーケンス(`\"` と `\\` を除く)が認識されます。改行文字(NL)には `\n`、水平タブ(HT、TAB)には `\t`、バックスペース(BS)には `\b` です。その他の文字のエスケープシーケンス(8進エスケープシーケンスを含む)は無効です。
インクルード
`include` セクションと `includeIf` セクションを使用すると、別のソースから設定ディレクティブを含めることができます。これらのセクションは、`includeIf` セクションが条件が true に評価されない場合に無視される可能性がある点を除いて、互いに同じように動作します。以下の「条件付きインクルード」を参照してください。
含めるファイルのパス名を `include.path` (または `includeIf.*.path`)変数に設定することで、別の設定ファイルを含めることができます。変数はパス名を値として受け取り、チルダ展開の対象となります。これらの変数は複数回指定できます。
含められたファイルの内容は、インクルードディレクティブの位置で見つかったかのように、すぐに挿入されます。変数の値が相対パスである場合、パスはインクルードディレクティブが見つかった設定ファイルに対する相対パスと見なされます。例については以下を参照してください。
条件付きインクルード
`includeIf.<condition>.path` 変数を、含めるファイルの名前に設定することで、別の設定ファイルを条件付きで含めることができます。
条件は、キーワードで始まり、コロンと、その形式と意味がキーワードによって異なるデータが続きます。サポートされているキーワードは次のとおりです。
-
gitdir
-
キーワード `gitdir:` の後に続くデータは、glob パターンとして使用されます。`.git` ディレクトリの場所がパターンに一致する場合、インクルード条件が満たされます。
`.git` の場所は自動検出されるか、`$GIT_DIR` 環境変数から取得されます。リポジトリが `.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:
に続くデータは、標準的なglobワイルドカードと、複数のパスコンポーネントにマッチできる追加のワイルドカード**/
と/**
を持つパターンとして解釈されます。現在チェックアウトされているブランチの名前が、このパターンに一致するワークツリーにいる場合、include条件が満たされます。パターンが
/
で終わる場合、**
が自動的に追加されます。例えば、パターンfoo/
はfoo/**
になります。つまり、foo/
で始まるすべてのブランチにマッチします。これは、ブランチが階層的に整理されており、その階層内のすべてのブランチに設定を適用したい場合に便利です。 -
hasconfig:remote.*.url:
-
このキーワードに続くデータは、標準的なglobワイルドカードと、複数のコンポーネントにマッチできる追加のワイルドカード
**/
と/**
を持つパターンとして解釈されます。このキーワードが初めて検出された際に、残りの設定ファイルがリモートURLについてスキャンされます(値の適用は行われません)。このパターンに一致するリモートURLが少なくとも1つ存在する場合、include条件が満たされます。このオプションによって(直接的または間接的に)インクルードされたファイルには、リモートURLを含めることは許可されません。
他のincludeIf条件とは異なり、この条件の解決は、条件の読み取り時点ではまだ不明な情報に依存することに注意してください。典型的なユースケースとしては、このオプションがシステムレベルまたはグローバルレベルの設定として存在し、リモートURLがローカルレベルの設定にある場合です。そのため、この条件を解決する際に先読みする必要があります。潜在的にインクルードされるファイルが、それらのファイルが潜在的にインクルードされるかどうかを左右するという循環問題を回避するために、Gitはこれらのファイルがこれらの条件の解決に影響することを禁止することで(したがって、リモートURLの宣言を禁止することで)この循環を断ち切ります。
このキーワードの命名に関しては、より多くの変数ベースのinclude条件をサポートする命名スキームとの将来的な互換性のためですが、現在Gitは上記のキーワードのみをサポートしています。
gitdir
とgitdir/i
によるマッチングに関する追加の注意事項
-
$GIT_DIR
内のシンボリックリンクは、マッチングの前に解決されません。 -
$GIT_DIR
の外側では、シンボリックリンクと実パスの両方のバージョンのパスがマッチされます。例えば、~/gitが/mnt/storage/gitへのシンボリックリンクである場合、gitdir:~/git
とgitdir:/mnt/storage/git
の両方がマッチします。これは、実パスのバージョンのみがマッチしたこの機能のv2.13.0での最初のリリース時には当てはまりませんでした。この機能の最初のリリースと互換性を持たせたい設定では、実パスのバージョンのみを指定するか、両方のバージョンを指定する必要があります。
-
"../"
は特別なものではなく、文字通りマッチすることに注意してください。これは、おそらくあなたが望んでいることではありません。
例
# Core variables [core] ; Don't trust file modes filemode = false # Our diff algorithm [diff] external = /usr/local/bin/diff-wrapper renames = true [branch "devel"] remote = origin merge = refs/heads/devel # Proxy settings [core] gitProxy="ssh" for "kernel.org" gitProxy=default-proxy ; for the rest [include] path = /path/to/foo.inc ; include by absolute path path = foo.inc ; find "foo.inc" relative to the current file path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory ; include if $GIT_DIR is /path/to/foo/.git [includeIf "gitdir:/path/to/foo/.git"] path = /path/to/foo.inc ; include for all repositories inside /path/to/group [includeIf "gitdir:/path/to/group/"] path = /path/to/foo.inc ; include for all repositories inside $HOME/to/group [includeIf "gitdir:~/to/group/"] path = /path/to/foo.inc ; relative paths are always relative to the including ; file (if the condition is true); their location is not ; affected by the condition [includeIf "gitdir:/path/to/group/"] path = foo.inc ; 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
値
多くの変数の値は単純な文字列として扱われますが、特定の型の値を取る変数があり、それらの記述方法に関するルールがあります。
- ブール値
-
変数がブール値を取る場合、trueとfalseには多くの同義語が許容されます。これらはすべて大文字と小文字を区別しません。
- 整数
-
様々なサイズを指定する多くの変数の値には、
k
、M
…などを接尾辞として付けることができます。これは、「数値を1024倍する」、「1024x1024倍する」などを意味します。 - 色
-
色を取る変数の値は、色のリスト(最大2つ、1つは前景用、もう1つは背景用)と属性(いくつでも可)で、スペースで区切られています。
許容される基本色は、
normal
、black
、red
、green
、yellow
、blue
、magenta
、cyan
、white
、default
です。最初に指定された色は前景、2番目は背景です。normal
とdefault
を除くすべての基本色には、brightred
のように色にbright
を接頭辞として付けることで指定できる明るいバリアントがあります。色
normal
は色を変更しません。空文字列と同じですが、背景色のみを指定する場合(例えば、「normal red」)前景の色として使用できます。色
default
は、色をターミナルのデフォルトに明示的にリセットします(例えば、クリアされた背景を指定する場合)。ターミナルによって異なりますが、通常は「white black」に設定することとは異なります。色は0から255までの数値で指定することもできます。これらはANSI 256色モードを使用します(ただし、すべてのターミナルがこれをサポートするとは限りません)。ターミナルがサポートしている場合、
#ff0ab3
のような24ビットRGB値、または#f1b
のような12ビットRGB値(24ビット色#ff11bb
に相当)を16進数で指定することもできます。許容される属性は、
bold
、dim
、ul
、blink
、reverse
、italic
、strike
(取り消し線付きまたは「取り消し線」の文字用)です。属性の位置(前、後、または間)は関係ありません。特定の属性は、no
またはno-
を接頭辞として付けることで無効にすることができます(例:noreverse
、no-ul
など)。擬似属性
reset
は、指定された色の適用前にすべての色と属性をリセットします。例えば、reset green
は、アクティブな属性なしで緑色の前景とデフォルトの背景になります。空の文字列の色は、まったく色の効果を生み出しません。これは、色全体を無効にすることなく、特定の要素の色付けを避けるために使用できます。
Gitで事前に定義されている色のスロットでは、属性は色付き出力の各項目の先頭でリセットされることを意図しています。そのため、
color.decorate.branch
をblack
に設定すると、そのブランチ名は単純なblack
で描画されます。これは、同じ出力行の前のもの(例えば、log --decorate
出力におけるブランチ名のリストの前にある開き括弧)がbold
またはその他の属性で描画されるように設定されている場合でも同様です。ただし、カスタムログ形式では、より複雑で階層化された色付けを行うことがあり、否定形が役立つ場合があります。 - パス名
-
パス名値を取る変数には、"
~/
"または"~user/
"で始まる文字列を指定でき、通常のチルダ展開がそのような文字列に適用されます。"~/
"は$HOME
の値に展開され、"~user/
"は指定されたユーザーのホームディレクトリに展開されます。パスが
%(prefix)/
で始まる場合、残りの部分はGitの「ランタイムプリフィックス」を基準とした相対パスとして解釈されます。つまり、Git自体がインストールされた場所を基準とした相対パスです。例えば、%(prefix)/bin/
は、Git実行ファイル自体が存在するディレクトリを参照します。Gitがランタイムプリフィックスサポートなしでコンパイルされた場合、コンパイル時に組み込まれたプリフィックスが代わりに置換されます。文字通りのパスで展開されないものを指定する必要があるという稀なケースでは、./
を接頭辞として付ける必要があります。例えば、./%(prefix)/bin
のようにします。
変数
このリストは網羅的ではなく、必ずしも完全ではないことに注意してください。コマンド固有の変数については、該当するマニュアルページでより詳細な説明を見つけることができます。
その他のGit関連ツールは、独自の変数を使用する場合があります。独自のツールで使用するために新しい変数を発明する際には、Git自体や他の一般的なツールで使用されている変数と名前が重複しないようにし、ドキュメントでそれらを説明してください。
- add.ignoreErrors
- add.ignore-errors(非推奨)
-
インデックス付けエラーのために一部のファイルを追加できない場合でも、git addがファイルの追加を続行するように指示します。git-add[1]の
--ignore-errors
オプションと同等です。add.ignore-errors
は、設定変数の通常の命名規則に従っていないため、非推奨です。 - advice.*
-
これらの変数は、新しいユーザーを支援するために設計された様々なオプションのヘルプメッセージを制御します。設定されていない場合、Gitはメッセージとその抑制方法に関する指示と共にメッセージを表示します。対応する変数を
false
に設定することで、問題を理解し、特定のヘルプメッセージを必要としなくなったことをGitに伝えることができます。これらは人間のユーザーを支援することを目的としているため、これらのメッセージは標準エラー出力に出力されます。Gitをサブプロセスとして実行するツールがこれらを邪魔だと判断した場合は、環境変数
GIT_ADVICE=0
を設定して、すべてのアドバイスメッセージを抑制することができます。- addEmbeddedRepo
-
ユーザーが誤って別のGitリポジトリの中にGitリポジトリを追加した場合に表示されます。
- addEmptyPathspec
-
ユーザーがパススペックパラメーターを指定せずに
git add
を実行した場合に表示されます。 - addIgnoredFile
-
ユーザーが無視されたファイルをインデックスに追加しようとすると表示されます。
- amWorkDir
-
git-am[1]がパッチファイルの適用に失敗した場合、ユーザーにファイルの場所を伝えるために表示されます。
- ambiguousFetchRefspec
-
複数のリモートのリモート取得参照指定子が同じリモート追跡ブランチ名前空間にマップされ、ブランチ追跡の設定が失敗した場合に表示されます。
- checkoutAmbiguousRemoteBranchName
-
git-checkout[1]とgit-switch[1]の引数が、あいまいなリモート追跡ブランチを複数リモートで解決し、そうでなければ明確な引数によってリモート追跡ブランチがチェックアウトされる状況で表示されます。このアドバイスが表示される状況で特定のリモートをデフォルトで使用する方法については、
checkout.defaultRemote
設定変数を参照してください。 - commitBeforeMerge
-
ローカルの変更を上書きするのを避けるためにgit-merge[1]がマージを拒否した場合に表示されます。
- detachedHead
-
ユーザーがgit-switch[1]またはgit-checkout[1]を使用してデタッチされたHEAD状態に移動した場合、後でローカルブランチを作成する方法をユーザーに伝えるために表示されます。
- diverging
-
高速転送が不可能な場合に表示されます。
- fetchShowForcedUpdates
-
git-fetch[1]が参照の更新後に強制更新の計算に長い時間がかかった場合、またはチェックが無効になっていることを警告するために表示されます。
- forceDeleteBranch
-
ユーザーが強制オプションを設定せずに、完全にマージされていないブランチを削除しようとすると表示されます。
- ignoredHook
-
フックが実行可能として設定されていないため、フックが無視された場合に表示されます。
- implicitIdentity
-
システムのユーザー名とドメイン名からユーザーの情報が推測された場合に表示され、ユーザーにアイデンティティ設定方法を指示します。
- mergeConflict
-
様々なコマンドが競合によって停止した場合に表示されます。
- nestedTag
-
ユーザーがタグオブジェクトを再帰的にタグ付けしようとすると表示されます。
- pushAlreadyExists
-
git-push[1]が高速フォワードできない更新(例:タグ)を拒否した場合に表示されます。
- pushFetchFirst
-
git-push[1]が、私たちが持っていないオブジェクトを指すリモート参照を上書きしようとする更新を拒否した場合に表示されます。
- pushNeedsForce
-
git-push[1]が、コミットではないオブジェクトを指すリモート参照を上書きしようとする更新、またはリモート参照をコミットではないオブジェクトを指すようにしようとする更新を拒否した場合に表示されます。
- pushNonFFCurrent
-
git-push[1]が、現在のブランチへの非高速フォワード更新が原因で失敗した場合に表示されます。
- pushNonFFMatching
-
ユーザーがgit-push[1]を実行し、「一致する参照」を明示的にプッシュした場合(つまり、
:
を使用するか、現在のブランチではないrefspecを指定した場合)、非高速フォワードエラーが発生した場合に表示されます。 - pushRefNeedsUpdate
-
git-push[1]が、リモート追跡参照にローカルにない更新がある場合に、ブランチの強制更新を拒否した場合に表示されます。
- pushUnqualifiedRefname
-
git-push[1]が、ソースと宛先の参照に基づいてソースが属するリモート参照名前空間の推測をあきらめたが、ソースオブジェクトの種類に基づいてユーザーに
refs/heads/*
またはrefs/tags/*
へのプッシュを提案できる場合に表示されます。 - pushUpdateRejected
-
pushNonFFCurrent
、pushNonFFMatching
、pushAlreadyExists
、pushFetchFirst
、pushNeedsForce
、およびpushRefNeedsUpdate
を同時に無効にする場合は、この変数をfalse
に設定します。 - rebaseTodoError
-
rebase ToDoリストの編集後にエラーが発生した場合に表示されます。
- refSyntax
-
ユーザーが無効な参照名を指定した場合に表示され、参照構文のドキュメントについてユーザーに指示します。
- resetNoRefresh
-
git-reset[1]がリセット後のインデックスの更新に2秒以上かかった場合に表示され、ユーザーに
--no-refresh
オプションを使用できることを伝えます。 - resolveConflict
-
様々なコマンドで、競合によって操作が実行できない場合に表示されます。
- rmHints
-
git-rm[1]の出力でエラーが発生した場合に表示され、現在の状態からの処理方法を指示します。
- sequencerInUse
-
シーケンサーコマンドが既に実行中の場合に表示されます。
- skippedCherryPicks
-
git-rebase[1]が、既に上流ブランチにチェリーピックされているコミットをスキップした場合に表示されます。
- sparseIndexExpanded
-
スパースインデックスがフルインデックスに展開された場合に表示されます。これは、スパースチェックアウトの外側に予期しないファイルセットが存在することが原因である可能性があります。
- statusAheadBehind
-
git-status[1]が、ローカル参照とリモート追跡参照を比較した先頭/後方のカウントを計算し、その計算が予想以上に時間がかかった場合に表示されます。
status.aheadBehind
がfalseの場合、または--no-ahead-behind
オプションが指定されている場合は表示されません。 - statusHints
-
git-status[1]の出力、git-commit[1]でコミットメッセージを作成する場合に表示されるテンプレート、およびブランチを切り替える際のgit-switch[1]またはgit-checkout[1]によって表示されるヘルプメッセージで、現在の状態からの処理方法を指示します。
- statusUoption
-
git-status[1]が追跡されていないファイルの列挙に2秒以上かかった場合に表示され、ユーザーに
-u
オプションを使用できることを伝えます。 - submoduleAlternateErrorStrategyDie
-
submodule.alternateErrorStrategy
オプションが"die"に設定されているために致命的なエラーが発生した場合に表示されます。 - submoduleMergeConflict
-
複雑なサブモジュールのマージ競合が発生した場合に表示されるアドバイスです。
- submodulesNotUpdated
-
git submodule update --init
が実行されていないためにサブモジュールコマンドが失敗した場合に表示されます。 - suggestDetachingHead
-
git-switch[1]が、明示的な
--detach
オプションなしでHEADをデタッチすることを拒否した場合に表示されます。 - updateSparsePath
-
git-add[1]またはgit-rm[1]が、現在のスパースチェックアウト外のインデックスエントリの更新を要求された場合に表示されます。
- waitingForEditor
-
Gitがエディタの入力を待っている場合に表示されます。例えば、エディタがターミナル内で起動されていない場合などに関連します。
- worktreeAddOrphan
-
ユーザーが無効な参照からワークツリーを作成しようとすると表示され、代わりに新しい未作成ブランチを作成する方法をユーザーに指示します。
- alias.*
-
git[1]コマンドラッパーのコマンドエイリアスです。例:
alias.last = cat-file commit HEAD
を定義した後、git last
の呼び出しはgit cat-file commit HEAD
と同等になります。スクリプトの使用における混乱や問題を避けるため、既存のGitコマンドを隠すエイリアスは無視されます。引数はスペースで区切られ、通常のシェルの引用とエスケープがサポートされます。引用符のペアまたはバックスラッシュを使用して引用できます。エイリアスの最初の単語は、必ずしもコマンドである必要はありません。それは
git
の呼び出しに渡されるコマンドラインオプションにすることができます。特に、-c
と共にワンタイム設定を渡す場合、または-p
を使用してページングを強制する場合に便利です。例えば、loud-rebase = -c commit.verbose=true rebase
を定義すると、git loud-rebase
を実行するとgit -c commit.verbose=true rebase
と同等になります。また、ps = -p status
は便利なエイリアスです。なぜなら、git ps
は元のコマンドではページングされないgit status
の出力をページングするからです。エイリアスの展開が感嘆符で始まる場合、シェルコマンドとして扱われます。例えば、
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]を参照してください。 -
シェルコマンドエイリアスは、常にGitコマンドラインに提供された追加の引数を位置引数として受け取ります。
-
シェルのエイリアスが複数のコマンドを持つ「1行」スクリプト(例:パイプライン内)、複数の引数を参照する、または末尾に追加された位置引数を処理できない場合などは注意が必要です。例:
alias.cmd = "!echo $1 | grep $2"
をgit cmd 1 2
として呼び出すと、echo $1 | grep $2 1 2として実行されますが、これは意図したものではありません。 -
これに対処する便利な方法は、コマンドラインから任意の引数で呼び出されるインライン関数にスクリプト操作を記述することです。例:
alias.cmd = "!c() { echo $1 | grep $2 ; }; c"
は、前の例を正しく実行します。 -
GIT_TRACE=1
を設定すると、エイリアスに対して実行されているコマンドのデバッグに役立ちます。
-
-
- am.keepcr
-
trueの場合、git-amはmbox形式のパッチに対してパラメータ
--keep-cr
付きでgit-mailsplitを呼び出します。この場合、git-mailsplitは\r\n
で終わる行から\r
を削除しません。コマンドラインから--no-keep-cr
を指定することで上書きできます。git-am[1]、git-mailsplit[1]を参照してください。 - am.threeWay
-
デフォルトでは、
git am
はパッチがクリーンに適用されない場合に失敗します。trueに設定すると、この設定により、パッチが適用するはずのBLOBのIDを記録し、それらのBLOBがローカルに存在する場合、git am
は3方向マージにフォールバックします(コマンドラインから--3way
オプションを指定するのと同じです)。デフォルトはfalse
です。git-am[1]を参照してください。 - apply.ignoreWhitespace
-
changeに設定すると、git applyは
--ignore-space-change
オプションと同じように、空白の変更を無視します。no、none、never、falseのいずれかに設定すると、git applyはすべての空白の違いを尊重します。git-apply[1]を参照してください。 - apply.whitespace
-
--whitespace
オプションと同じように、git applyが空白をどのように処理するかを指定します。git-apply[1]を参照してください。 - attr.tree
-
作業ツリー内の
.gitattributes
ファイルではなく、属性を読み取るためのリポジトリ内のツリーへの参照です。値が有効なツリーオブジェクトに解決されない場合は、代わりに空のツリーが使用されます。GIT_ATTR_SOURCE
環境変数または--attr-source
コマンドラインオプションが使用されている場合、この設定変数は効果がありません。
注記
|
bitmapPseudoMerge.* 内の設定オプションは実験的なものであり、将来変更される可能性、または完全に削除される可能性があります。擬似マージビットマップ機能の詳細については、gitpacking[7]の「擬似マージビットマップ」セクションを参照してください。 |
- bitmapPseudoMerge.<name>.pattern
-
参照名に一致させるために使用される正規表現です。このパターンに一致する参照(および
bitmapPseudoMerge.<name>.sampleRate
やbitmapPseudoMerge.<name>.threshold
のような以下の基準を満たす参照)が指すコミットは、擬似マージビットマップへの包含候補として考慮されます。コミットは、特定のコミットを指す参照がパターンに一致するかどうかを基に、擬似マージグループにグループ化されます。これは拡張正規表現です。
擬似マージグループ内では、コミットはパターン内のキャプチャグループに基づいてさらにサブグループにグループ化される場合があります。これらのサブグループ化は、正規表現のキャプチャグループを、間にハイフン(-)を挿入して連結することによって形成されます。
たとえば、パターンが
refs/tags/
の場合、すべてのタグ(以下の基準を満たす場合)は同じ擬似マージグループの候補として考慮されます。しかし、パターンがrefs/remotes/([0-9])+/tags/
の場合、異なるリモートからのタグは、リモート番号に基づいて個別の擬似マージグループにグループ化されます。 - bitmapPseudoMerge.<name>.decay
-
連続する擬似マージビットマップグループのサイズが減少する速度を決定します。0以上の値でなければなりません。このパラメータは、関数
f(n) = C * n^-k
におけるk
と考えることができます。ここで、f(n)
はn番目のグループのサイズです。減衰率を
0
に設定すると、すべてのグループのサイズが同じになります。減衰率を1
に設定すると、n番目のグループのサイズは最初のグループの1/n
になります。減衰率の値が大きいほど、連続するグループの縮小率が高くなります。デフォルトは1
です。すべてのグループのサイズが同じ場合、新しいコミットを含むグループは、古いコミットを指す参照よりも新しいコミットを指す参照の方が更新される可能性が高いため、古いグループよりも使用頻度が低くなる可能性があります。
- bitmapPseudoMerge.<name>.sampleRate
-
不安定な擬似マージビットマップに含めるために選択される、ビットマップ化されていないコミット(参照の先端の間)の割合を決定します。
0
から1
(を含む)の間でなければなりません。デフォルトは1
です。 - bitmapPseudoMerge.<name>.threshold
-
不安定な擬似マージビットマップへの包含候補となる、ビットマップ化されていないコミット(上記のように参照の先端の間)の最小の経過時間を決定します。デフォルトは
1.week.ago
です。 - bitmapPseudoMerge.<name>.maxMerges
-
コミットを分散させることができる擬似マージコミットの最大数を決定します。
パターンにキャプチャグループが含まれていない擬似マージグループの場合、この設定は正規表現に一致するすべてのコミットに適用されます。1つ以上のキャプチャグループを持つパターンでは、この設定は各個別キャプチャグループに適用されます。
たとえば、キャプチャグループが
refs/tags/
の場合、この設定はすべてのタグを最大maxMerges
個の擬似マージコミットに分散します。しかし、キャプチャグループがrefs/remotes/([0-9]+)/tags/
の場合、この設定は各リモートのタグセットに個別に適用されます。0以上の値でなければなりません。デフォルト値は64です。
- bitmapPseudoMerge.<name>.stableThreshold
-
安定した擬似マージビットマップの候補となるコミット(上記のように参照の先端の間、ただし安定したコミットはビットマップでカバーされていても候補とみなされます)の最小の経過時間を決定します。デフォルトは
1.month.ago
です。この閾値を小さな値(例:1.week.ago)に設定すると、より多くの安定したグループが生成されます(1回限りの生成コストがかかります)が、それらのグループは時間の経過とともに陳腐化する可能性が高くなります。大きな値を使用すると、反対のペナルティが発生します(より少ない安定したグループで、有用性は高くなります)。
- bitmapPseudoMerge.<name>.stableSize
-
安定した擬似マージビットマップのサイズ(コミット数)を決定します。デフォルトは
512
です。 - blame.blankBoundary
-
git-blame[1]で境界コミットの空のコミットオブジェクト名を表示します。このオプションのデフォルトはfalseです。
- blame.coloring
-
これは、blame出力に適用されるカラーリングスキームを決定します。repeatedLines、highlightRecent、またはデフォルトのnoneにすることができます。
- blame.date
-
git-blame[1]で日付を出力するために使用される形式を指定します。設定されていない場合、iso形式が使用されます。サポートされている値については、git-log[1]の
--date
オプションの説明を参照してください。 - blame.showEmail
-
git-blame[1]で、作成者名ではなく作成者メールアドレスを表示します。このオプションのデフォルトはfalseです。
- blame.showRoot
-
git-blame[1]でルートコミットを境界として扱いません。このオプションのデフォルトはfalseです。
- blame.ignoreRevsFile
-
git-blame[1]で、ファイルにリストされているリビジョン(行ごとに1つの省略されていないオブジェクト名)を無視します。空白と
#
で始まるコメントは無視されます。このオプションは複数回繰り返すことができます。空のファイル名は、無視されるリビジョンのリストをリセットします。このオプションは、コマンドラインオプション--ignore-revs-file
の前に処理されます。 - blame.markUnblamableLines
-
git-blame[1]の出力で、無視されたリビジョンによって変更されたが、他のコミットに属性を割り当てることができなかった行に*を付けます。
- blame.markIgnoredLines
-
git-blame[1]の出力で、無視されたリビジョンによって変更され、他のコミットに属性を割り当てられた行に?を付けます。
- branch.autoSetupMerge
-
git branch、git switch、およびgit checkoutに対して、git-pull[1]が開始点のブランチから適切にマージするように新しいブランチを設定するように指示します。このオプションが設定されていなくても、
--track
および--no-track
オプションを使用して、ブランチごとにこの動作を選択できます。有効な設定は次のとおりです。false
- 自動設定は行われません。true
- 開始点がリモート追跡ブランチの場合、自動設定が行われます。always
- 開始点がローカルブランチまたはリモート追跡ブランチのいずれかの場合、自動設定が行われます。inherit
- 開始点に追跡設定がある場合、それが新しいブランチにコピーされます。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]のフィールド名を参照してください。
- branch.<name>.remote
-
<name>ブランチにいる場合、git fetchとgit pushに、フェッチ元またはプッシュ先のリモートを指示します。プッシュ先のリモートは、
remote.pushDefault
(すべてのブランチ)で上書きできます。現在のブランチに対するプッシュ先のリモートは、branch.<name>.pushRemote
でさらに上書きできます。リモートが設定されていない場合、またはブランチにいない状態でリポジトリに複数のリモートが定義されている場合、フェッチにはorigin
、プッシュにはremote.pushDefault
がデフォルトになります。さらに、.
(ピリオド)は現在のローカルリポジトリ(ドットリポジトリ)です。下記のbranch.<name>.merge
の最後の注記を参照してください。 - branch.<name>.pushRemote
-
<name>ブランチにいる場合、プッシュに関して
branch.<name>.remote
を上書きします。また、<name>ブランチからのプッシュに関してremote.pushDefault
も上書きします。ある場所(例:アップストリーム)からプルし、別の場所(例:独自の公開リポジトリ)にプッシュする場合は、remote.pushDefault
を設定してすべてのブランチのプッシュ先のリモートを指定し、このオプションを使用して特定のブランチに対して上書きします。 - branch.<name>.merge
-
branch.<name>.merge は、branch.<name>.remote と共に、指定されたブランチの上流ブランチを定義します。これは `git fetch` / `git pull` / `git rebase` にどのブランチをマージするかを指示し、`git push` にも影響を与える可能性があります (push.default を参照)。ブランチ <name>にいる場合、`git fetch` にFETCH_HEADでマージする対象としてマークするデフォルトのrefspecを指示します。この値はrefspecのリモート部分のように扱われ、"branch.<name>.remote"で指定されたリモートからフェッチされるrefと一致する必要があります。このマージ情報は、`git pull` (最初に`git fetch`を呼び出す)によって、マージするデフォルトブランチを検索するために使用されます。このオプションがない場合、`git pull` はフェッチされた最初のrefspecをマージします。オクトパスマージを行うには、複数の値を指定します。ローカルリポジトリ内の別のブランチから<name>にマージするように`git pull`を設定したい場合は、branch.<name>.mergeを目的のブランチにポイントし、branch.<name>.remoteに相対パス設定`.`(ピリオド)を使用できます。
- branch.<name>.mergeOptions
-
ブランチ<name>へのマージのデフォルトオプションを設定します。構文とサポートされるオプションは、git-merge[1]のものと同じですが、現在、空白文字を含むオプション値はサポートされていません。
- branch.<name>.rebase
-
trueの場合、`git pull`の実行時にデフォルトのリモートからデフォルトブランチをマージする代わりに、フェッチされたブランチの上にブランチ<name>をrebaseします。「pull.rebase」を参照して、ブランチに依存しない方法で行ってください。
`merges` (または単に`m`)の場合、`git rebase`に`--rebase-merges`オプションを渡して、ローカルのマージコミットをrebaseに含めます(詳細についてはgit-rebase[1]を参照)。
値が`interactive`(または単に`i`)の場合、rebaseはインタラクティブモードで実行されます。
**注記**:これは危険な操作になる可能性があります。影響を理解していない限り、使用しないでください(詳細についてはgit-rebase[1]を参照)。
- branch.<name>.description
-
ブランチの説明。`git branch --edit-description`で編集できます。ブランチの説明は、format-patchのカバーレターまたはrequest-pullのサマリーに自動的に追加されます。
- browser.<tool>.cmd
-
指定されたブラウザを呼び出すコマンドを指定します。指定されたコマンドは、引数として渡されたURLを使用してシェルで評価されます。(git-web--browse[1]を参照)。
- browser.<tool>.path
-
HTMLヘルプを参照するために使用できる指定されたツールのパスを上書きします(git-help[1]の`-w`オプションを参照)。または、gitwebでの作業リポジトリ(git-instaweb[1]を参照)。
- bundle.*
-
`bundle.*`キーは、`git clone --bundle-uri`オプションによって検出されたバンドルリストファイルに表示される場合があります。これらのキーは、リポジトリ設定ファイルに配置した場合、現在は効果がありませんが、将来的に変更される予定です。詳細については、バンドルURI設計ドキュメントを参照してください。
- bundle.version
-
この整数値は、バンドルリストで使用されるバンドルリスト形式のバージョンを示します。現在、受け入れられる値は`1`のみです。
- bundle.mode
-
この文字列値は`all`または`any`のいずれかである必要があります。この値は、バンドルされた情報の完全な理解をアンバンドルするために、すべての宣伝されているバンドルが必要かどうか(`all`)、またはリストされているバンドルURIのいずれか1つで十分かどうか(`any`)を示します。
- bundle.heuristic
-
この文字列値のキーが存在する場合、バンドルリストは増分`git fetch`コマンドで適切に動作するように設計されています。このヒューリスティックは、クライアントがダウンロードする必要があるバンドルのサブセットを決定するのに役立つ、各バンドルで使用できる追加のキーがあることを示します。現在理解されている値は`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が指定されていない限り、git-cleanがファイルの削除を拒否するようにするブール値。デフォルトはtrueです。
-
clone.defaultRemoteName
-
リポジトリをクローン作成する際に作成するリモートの名前。デフォルトは`origin`です。git-clone[1]に`--origin`コマンドラインオプションを渡すことで上書きできます。
-
clone.rejectShallow
-
シャローなリポジトリの場合、クローン作成を拒否します。これは、コマンドラインに`--reject-shallow`オプションを渡すことで上書きできます。git-clone[1]を参照してください。
-
clone.filterSubmodules
-
部分的なクローンフィルターが提供されている場合(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年前の最近の変更は白色、過去1ヶ月以内に導入された行は赤色になります。
- color.blame.repeatedLines
-
`git blame --color-lines`の行の注釈を色付けするために指定された色を使用します。前の行と同じコミットからのものの場合。デフォルトはシアンです。
- color.branch
-
git-branch[1]の出力の色を有効/無効にするブール値。`always`、`false`(または`never`)、`auto`(または`true`)に設定できます。この場合、色は出力がターミナルの場合にのみ使用されます。設定されていない場合、`color.ui`の値が使用されます(デフォルトは`auto`)。
- color.branch.<slot>
-
ブランチの色のカスタマイズされた色を使用します。<slot>は、`current`(現在のブランチ)、`local`(ローカルブランチ)、`remote`(refs/remotes/内のリモート追跡ブランチ)、`upstream`(上流追跡ブランチ)、`plain`(その他のrefs)のいずれかです。
- color.diff
-
パッチに色を追加するためにANSIエスケープシーケンスを使用するかどうか。これが`always`に設定されている場合、git-diff[1]、git-log[1]、およびgit-show[1]はすべてのパッチに色を使用します。`true`または`auto`に設定されている場合、これらのコマンドは出力がターミナルの場合にのみ色を使用します。設定されていない場合、`color.ui`の値が使用されます(デフォルトは`auto`)。
これはgit-format-patch[1]または`git-diff-*` plumbingコマンドには影響しません。`--color[=<when>]`オプションを使用してコマンドラインで上書きできます。
- color.diff.<slot>
-
差分の色付けにカスタムカラーを使用します。
<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>
は、それぞれローカルブランチ、リモートトラッキングブランチ、タグ、スタッシュ、HEAD に対して、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
-
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
(「ブランチなし」警告が表示される色、デフォルトは赤)、localBranch
またはremoteBranch
(ブランチと追跡情報がステータスの短形式で表示される場合のローカルブランチ名とリモートブランチ名)、unmerged
(マージされていない変更があるファイル)のいずれかです。 - color.transport
-
プッシュが拒否された場合の色付けを有効/無効にするブール値です。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。後者の場合、エラー出力がターミナルに出力される場合にのみ色を使用します。設定されていない場合、color.ui
の値が使用されます(デフォルトはauto
)。 - color.transport.rejected
-
プッシュが拒否された場合のカスタムカラーを使用します。
- color.ui
-
この変数は、コマンドファミリごとに色の使用を制御する
color.diff
やcolor.grep
などの変数のデフォルト値を決定します。その範囲は、--color
オプションのデフォルトを設定する構成を学習するコマンドが増えるにつれて拡大します。Git コマンドで明示的に他の設定や--color
オプションで有効にしない限り、色を使用しない方が良い場合は、false
またはnever
に設定します。機械による消費を意図していないすべての出力が色を使用する場合はalways
に、そのような出力がターミナルに出力される場合に色を使用する場合はtrue
またはauto
に設定します(Git 1.8.4 以降のデフォルト)。 - column.ui
-
サポートされているコマンドが列形式で出力するかどうかを指定します。この変数は、スペースまたはコンマで区切られたトークンのリストで構成されます。
これらのオプションは、機能を有効にするタイミングを制御します(デフォルトは never)。
これらのオプションはレイアウトを制御します(デフォルトは column)。always、never、auto のいずれも指定されていない場合、これらのいずれかを設定すると always が暗黙的に指定されます。
最後に、これらのオプションはレイアウトオプションと組み合わせることができます(デフォルトは 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署名をするかどうかを指定するブール値です。rebaseなどの操作でこのオプションを使用すると、多数のコミットに署名される可能性があります。GPGパスフレーズを何度も入力するのを避けるために、エージェントを使用すると便利です。
- commit.status
-
エディタを使用してコミットメッセージを作成する際に、コミットメッセージテンプレートにステータス情報を含めるかどうかを有効/無効にするブール値です。デフォルトはtrueです。
- commit.template
-
新しいコミットメッセージのテンプレートとして使用するファイルのパス名を指定します。
- commit.verbose
-
git commit
の詳細度レベルを指定するブール値または整数値です。git-commit[1]を参照ください。 - commitGraph.generationVersion
-
コミットグラフファイルの書き込みまたは読み込み時に使用する生成番号バージョンの種類を指定します。バージョン1を指定すると、修正されたコミット日は書き込まれたり読み取られたりしません。デフォルトは2です。
- commitGraph.maxNewFilters
-
git commit-graph write
の--max-new-filters
オプションのデフォルト値を指定します(git-commit-graph[1]参照)。 - commitGraph.readChangedPaths
-
非推奨。trueの場合はcommitGraph.changedPathsVersion=-1、falseの場合はcommitGraph.changedPathsVersion=0と同等です。(commitGraph.changedPathVersionも設定されている場合、commitGraph.changedPathsVersionが優先されます)。
- commitGraph.changedPathsVersion
-
Gitが読み書きする変更パスBloomフィルタのバージョンを指定します。-1、0、1、または2にすることができます。1より大きい値は、それらのバージョンをまだ理解していない古いバージョンのGitと互換性がない可能性があります。混合バージョン環境で操作する際には注意が必要です。
デフォルトは-1です。
-1の場合、Gitはリポジトリ内の変更パスBloomフィルタのバージョンを使用し、存在しない場合はデフォルトで1になります。
0の場合、GitはBloomフィルタを読み取らず、書き込みが指示された場合にバージョン1のBloomフィルタを書き込みます。
1の場合、Gitはバージョン1のBloomフィルタのみを読み取り、バージョン1のBloomフィルタを書き込みます。
2の場合、Gitはバージョン2のBloomフィルタのみを読み取り、バージョン2のBloomフィルタを書き込みます。
git-commit-graph[1] を参照ください。
- completion.commands
-
これは、git-completion.bashによってのみ使用され、完了したコマンドのリストにコマンドを追加または削除します。通常、ポーセレンコマンドと少数の選択されたコマンドのみが完了します。この変数に、スペースで区切ったさらに多くのコマンドを追加できます。コマンドの前に-を付けると、既存のリストから削除されます。
- core.fileMode
-
作業ツリー内のファイルの実行ビットを尊重するかどうかをGitに指示します。
実行可能としてマークされているファイルをチェックアウトすると、一部のファイルシステムでは実行ビットが失われたり、実行ビットがオンになっている実行不可能なファイルがチェックアウトされたりします。git-clone[1]またはgit-init[1]は、ファイルシステムが実行ビットを正しく処理するかどうかを調べ、必要に応じてこの変数が自動的に設定されます。
ただし、リポジトリはファイルモードを正しく処理するファイルシステム上にある場合があり、作成時にこの変数はtrueに設定されますが、後でファイルモードを失う別の環境からアクセスできるようになる可能性があります(例:CIFSマウントを介したext4のエクスポート、Git for WindowsまたはEclipseでCygwinによって作成されたリポジトリへのアクセス)。そのような場合は、この変数をfalseに設定する必要がある場合があります。git-update-index[1]を参照ください。
デフォルトはtrueです(core.filemodeが設定ファイルに指定されていない場合)。
- 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のMac OS実装によってのみ使用されます。core.precomposeUnicode=trueの場合、GitはMac OSによって行われたファイル名のUnicode分解を元に戻します。これは、Mac OSとLinuxまたはWindows間でリポジトリを共有する場合に役立ちます。(Git for Windows 1.7.10以降が必要、またはcygwin 1.7下のGit)。falseの場合、ファイル名はGitによって完全に透過的に処理され、古いバージョンのGitとの下位互換性を保ちます。
- core.protectHFS
-
trueに設定されている場合、HFS+ファイルシステムで
.git
と等価と見なされるパスのチェックアウトを許可しません。Mac OSではtrue
、それ以外の場所ではfalse
がデフォルトです。 - core.protectNTFS
-
trueに設定されている場合、NTFSファイルシステムに問題を引き起こす可能性のあるパスのチェックアウトを許可しません(例:8.3「短い」名前との競合)。Windowsでは
true
、それ以外の場所ではfalse
がデフォルトです。 - core.fsmonitor
-
trueに設定されている場合、この作業ディレクトリに組み込みのファイルシステムモニタデーモンを有効にします(git-fsmonitor--daemon[1])。
フックベースのファイルシステムモニタと同様に、組み込みのファイルシステムモニタは、多くのファイルを含む作業ディレクトリで、Gitインデックスを更新する必要があるGitコマンド(例:
git status
)の速度を向上させることができます。組み込みのモニタを使用すると、外部のサードパーティツールをインストールおよび保守する必要がなくなります。組み込みのファイルシステムモニタは、現在、サポートされているプラットフォームの限られたセットでのみ使用できます。現在、WindowsとMacOSが含まれています。
Otherwise, this variable contains the pathname of the "fsmonitor" hook command.
このフックコマンドは、要求された日時以降に変更された可能性のあるすべてのファイルを識別するために使用されます。この情報は、変更されていないファイルのスキャンを回避することにより、Gitの速度を向上させるために使用されます。
githooks[5]の「fsmonitor-watchman」セクションを参照ください。
コマンドラインで1つのバージョン、IDEツールで別のバージョンなど、複数のバージョンのGitを同時に使用する場合、
core.fsmonitor
の定義が拡張され、フックパス名に加えてブール値が許可されるようになったことに注意してください。Gitバージョン2.35.1以前はブール値を理解せず、「true」または「false」の値を呼び出すフックパス名と見なします。Gitバージョン2.26から2.35.1までは、デフォルトでフックプロトコルV2を使用し、fsmonitorなし(フルスキャン)にフォールバックします。2.26より前のGitバージョンは、デフォルトでフックプロトコルV1を使用し、変更が報告されていないと黙って仮定します(スキャンなし)。そのため、statusコマンドは不完全な結果を報告する場合があります。このため、組み込みのファイルシステムモニタを使用する前に、すべてのGitバージョンをアップグレードすることをお勧めします。 - core.fsmonitorHookVersion
-
「fsmonitor」フックを呼び出す際に使用するプロトコルバージョンを設定します。
現在、バージョン1とバージョン2があります。これが設定されていない場合、最初にバージョン2が試行され、失敗した場合にバージョン1が試行されます。バージョン1はタイムスタンプを入力として使用して、その時間以降に変更されたファイルを決定しますが、Watchmanなどのモニターでは、タイムスタンプで使用する場合に競合状態が発生します。バージョン2は不透明な文字列を使用するため、モニターは競合状態なしに変更されたファイルを決定するために使用できるものを返すことができます。
- core.trustctime
-
falseの場合、インデックスと作業ツリー間のctimeの差は無視されます。これは、inode変更時間がGit以外のもので定期的に変更される場合(ファイルシステムクローラーや一部のバックアップシステム)に役立ちます。git-update-index[1]を参照ください。デフォルトはtrueです。
- core.splitIndex
-
trueの場合、インデックスの分割インデックス機能が使用されます。git-update-index[1]を参照ください。デフォルトはfalseです。
- core.untrackedCache
-
インデックスのuntrackedキャッシュ機能についてどうするかを決定します。この変数が設定されていないか、
keep
に設定されている場合、保持されます。true
に設定されている場合、自動的に追加されます。そして、false
に設定されている場合、自動的に削除されます。true
に設定する前に、mtimeがシステムで正しく機能していることを確認する必要があります。git-update-index[1]を参照ください。デフォルトはkeep
ですが、feature.manyFiles
が有効になっていると、デフォルトでtrue
に設定されます。 - core.checkStat
-
存在しない場合、または
default
に設定されている場合、stat構造体の多くのフィールドがチェックされ、Gitが最後に確認してからファイルが変更されたかどうかが検出されます。この設定変数がminimal
に設定されている場合、mtimeとctimeのサブ秒部分、ファイルの所有者のuidとgid、inode番号(およびGitがそれを使用するようにコンパイルされている場合のデバイス番号)は、これらのフィールドのチェックから除外され、mtime(およびcore.trustCtime
が設定されている場合のctime)の秒単位の部分とファイルサイズのみがチェックされます。一部のフィールドに有用な値を残さないGitの実装があります(例:JGit)。これらのフィールドを比較から除外することにより、
minimal
モードは、同じリポジトリがこれらの他のシステムによって同時に使用される場合の相互運用性を向上させるのに役立ちます。 - core.quotePath
-
パスを出力するコマンド(例:ls-files、diff)は、パス名内の「特殊な」文字を二重引用符で囲み、Cが制御文字をエスケープする方法(例:TABの場合は
\t
、LFの場合は\n
、バックスラッシュの場合は\\
)または0x80より大きい値のバイト(例:UTF-8の「マイクロ」の場合は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 を false にプローブして設定します。
- core.gitProxy
-
フェッチに Git プロトコルを使用する場合に、リモートサーバーへの直接接続を確立する代わりに実行する「プロキシコマンド」(command host port の形式)です。変数の値が「DOMAIN のための COMMAND」形式の場合、コマンドは指定されたドメイン文字列で終わるホスト名にのみ適用されます。この変数は複数回設定でき、指定された順序で一致されます。最初に一致したものが優先されます。
GIT_PROXY_COMMAND
環境変数で上書きできます(これは常に普遍的に適用され、「for」処理の特殊な処理は行われません)。特別な文字列
none
をプロキシコマンドとして使用して、特定のドメインパターンに対してプロキシを使用しないように指定できます。これは、ファイアウォール内のサーバーをプロキシの使用から除外しながら、外部ドメインに共通のプロキシをデフォルトで使用するのに役立ちます。 - core.sshCommand
-
この変数が設定されている場合、
git fetch
とgit push
は、リモートシステムに接続する必要があるときにssh
の代わりに指定されたコマンドを使用します。このコマンドはGIT_SSH_COMMAND
環境変数と同じ形式であり、環境変数が設定されている場合は上書きされます。 - core.ignoreStat
-
true の場合、Git は lstat() 呼び出しを使用してファイルの変更を検出せず、インデックスと作業ツリーの両方で同じように更新された追跡済みファイルに対して "assume-unchanged" ビットを設定します。
Git の外部でファイルが変更された場合、ユーザーは変更されたファイルを明示的にステージングする必要があります(たとえば、git-update-index[1] の「例」セクションを参照)。Git は通常、これらのファイルの変更を検出しません。
これは、CIFS/Microsoft Windows など、lstat() 呼び出しが非常に遅いシステムで役立ちます。
デフォルトは false です。
- core.preferSymlinkRefs
-
HEAD やその他のシンボリック参照ファイルのデフォルトの "symref" 形式の代わりに、シンボリックリンクを使用します。これは、HEAD をシンボリックリンクとして期待する古いスクリプトを使用する必要がある場合に必要になることがあります。
- core.alternateRefsCommand
-
代替からの利用可能な履歴のヒントをアドバタイズする際に、git-for-each-ref[1] の代わりに、指定されたコマンドをシェルで実行します。最初の引数は代替の絶対パスです。出力には、行ごとに 1 つの 16 進数のオブジェクト ID を含める必要があります(つまり、
git for-each-ref --format='%(objectname)'
で生成されるものと同じです)。リポジトリパスを引数として受け取らないため、一般的に
git for-each-ref
を直接設定値に入れることはできません(ただし、上記のコマンドをシェルスクリプトでラップすることはできます)。 - core.alternateRefsPrefixes
-
代替から参照をリストする場合、指定されたプレフィックスで始まる参照のみをリストします。プレフィックスは、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 でないと想定され(bare = false)、他のすべてのリポジトリは bare であると想定されます(bare = true)。
- core.worktree
-
作業ツリーのルートへのパスを設定します。
GIT_COMMON_DIR
環境変数が設定されている場合、core.worktree は無視され、作業ツリーのルートの決定には使用されません。これは、GIT_WORK_TREE
環境変数と--work-tree
コマンドラインオプションで上書きできます。値は、絶対パスにすることも、--git-dir
またはGIT_DIR
で指定されているか、または自動的に検出される .git ディレクトリへのパスに対する相対パスにすることもできます。--git-dir
またはGIT_DIR
が指定されているが、--work-tree
、GIT_WORK_TREE
、およびcore.worktree
のいずれも指定されていない場合、現在の作業ディレクトリが作業ツリーの最上位レベルと見なされます。この変数は、ディレクトリの ".git" サブディレクトリにある設定ファイルに設定されている場合でも、その値が後者のディレクトリと異なる場合でも(たとえば、"/path/to/.git/config" に core.worktree が "/different/path" に設定されている場合)尊重されます。これは、ほとんどの場合、誤った設定です。"path/to" ディレクトリで Git コマンドを実行しても、作業ツリーのルートとして "/different/path" が引き続き使用され、意図している動作が理解できていない限り(たとえば、リポジトリの通常の作業ツリーとは異なる場所に同じインデックスの読み取り専用スナップショットを作成している場合)、混乱が生じる可能性があります。
- core.logAllRefUpdates
-
reflog を有効にします。 ref <ref> の更新は、新しい SHA-1 と古い SHA-1、日付/時刻、および更新の理由を追加することで、ファイル "
$GIT_DIR/logs/<ref>
" にログに記録されますが、ファイルが存在する場合のみです。この設定変数をtrue
に設定すると、不足している "$GIT_DIR/logs/<ref>
" ファイルが、ブランチヘッド(つまり、refs/heads/
の下)、リモート ref(つまり、refs/remotes/
の下)、ノート ref(つまり、refs/notes/
の下)、およびシンボリック refHEAD
に対して自動的に作成されます。always
に設定されている場合、refs/
の下の任意の ref に対して、不足している reflog が自動的に作成されます。この情報は、「2 日前」のブランチの先端がどのコミットであったかを判断するために使用できます。
この値は、作業ディレクトリが関連付けられているリポジトリではデフォルトで true、bare リポジトリではデフォルトで false です。
- core.repositoryFormatVersion
-
リポジトリの形式とレイアウトのバージョンを識別する内部変数です。
-
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の場合、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
-
一度のマッピング操作でメモリにマップするパックファイルのバイト数。ウィンドウサイズを大きくすると、システムはより少ない数の大きなパックファイルをより迅速に処理できる場合があります。ウィンドウサイズを小さくすると、オペレーティングシステムのメモリマネージャーへの呼び出しが増えるためパフォーマンスが低下しますが、多数の大きなパックファイルにアクセスする場合のパフォーマンスが向上する可能性があります。
コンパイル時にNO_MMAPが設定されている場合は1 MiB、そうでない場合は32ビットプラットフォームで32 MiB、64ビットプラットフォームで1 GiBがデフォルトです。これはすべてのユーザー/オペレーティングシステムにとって妥当な値です。この値を調整する必要はほとんどありません。
k、m、またはgの一般的な単位サフィックスがサポートされています。
- core.packedGitLimit
-
パックファイルから同時にメモリにマップするバイト数の最大値。Gitが操作を完了するためにこれよりも多くのバイト数に一度にアクセスする必要がある場合、既存の領域をアンマップして、プロセス内の仮想アドレス空間を再利用します。
32ビットプラットフォームではデフォルトは256 MiB、64ビットプラットフォームでは32 TiB(事実上無制限)です。これは、最大のプロジェクトを除くすべてのユーザー/オペレーティングシステムにとって妥当な値です。この値を調整する必要はほとんどありません。
k、m、またはgの一般的な単位サフィックスがサポートされています。
- core.deltaBaseCacheLimit
-
複数のデルタイズされたオブジェクトによって参照される可能性のある基本オブジェクトのキャッシュに予約するスレッドあたりのバイト数の最大値。圧縮解除された基本オブジェクト全体をキャッシュに保存することで、Gitは頻繁に使用される基本オブジェクトの複数回のパック解除と圧縮解除を回避できます。
すべてのプラットフォームでデフォルトは96 MiBです。これは、最大のプロジェクトを除くすべてのユーザー/オペレーティングシステムにとって妥当な値です。この値を調整する必要はほとんどありません。
k、m、またはgの一般的な単位サフィックスがサポートされています。
- core.bigFileThreshold
-
"大きな"ファイルと見なされるファイルのサイズ。以下で説明するように、これは多数のgitコマンドの動作、およびそのようなファイルがリポジトリ内にどのように保存されるかを変更します。デフォルトは512 MiBです。k、m、またはgの一般的な単位サフィックスがサポートされています。
設定された制限を超えるファイルは、
-
デルタ圧縮を試みることなく、パックファイルに圧縮して保存されます。
デフォルトの制限は、主にこのユースケースを念頭に置いて設定されています。これにより、ほとんどのプロジェクトではソースコードやその他のテキストファイルがデルタ圧縮されますが、より大きなバイナリメディアファイルは圧縮されません。
デルタ圧縮を行わずに大きなファイルを保存すると、過剰なメモリ使用を回避できますが、ディスク使用量はやや増加します。
-
"バイナリ"とラベル付けされたものとして扱われます(gitattributes[5]を参照)。例:git-log[1]とgit-diff[1]はこの制限を超えるファイルの差分を計算しません。
-
書き込み時に一般的にストリーミングされます。これにより、過剰なメモリ使用を回避できますが、いくつかの固定オーバーヘッドが発生します。これを使用するコマンドには、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
環境変数の値にフォールバックするか、そうでない場合は単純なパスワードプロンプトを使用します。外部プログラムには、コマンドライン引数として適切なプロンプトが与えられ、パスワードがSTDOUTに書き込まれます。 - core.attributesFile
-
.gitattributes
(ディレクトリごと)と.git/info/attributes
に加えて、Gitはこのファイルで属性を探します(gitattributes[5]を参照)。パス展開は、core.excludesFile
と同じ方法で行われます。デフォルト値は$XDG_CONFIG_HOME/git/attributes
です。$XDG_CONFIG_HOME
が設定されていないか空の場合は、代わりに$HOME/.config/git/attributes
が使用されます。 - core.hooksPath
-
デフォルトでは、Gitは
$GIT_DIR/hooks
ディレクトリでフックを探します。これを異なるパス(例:/etc/git/hooks
)に設定すると、Gitは$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
- core.commentString
-
メッセージを編集できるようにする
commit
やtag
などのコマンドは、この文字で始まる行をコメントとして扱い、エディターが戻った後に削除します(デフォルトは#)。"auto"に設定されている場合、
git-commit
は既存のコミットメッセージの行の先頭文字ではない文字を選択します。これらの2つの変数は互いにエイリアスであり、最新のGitバージョンでは、
commentChar
で文字列(例://
または⁑⁕⁑
)を使用できます。v2.45.0より前のバージョンのGitはcommentString
を無視しますが、複数のASCIIバイトで構成されるcommentChar
の値を拒否します。古いバージョンと新しいバージョンのGitで設定を使用する予定がある場合は、両方を含めて指定することをお勧めします。[core] # single character for older versions commentChar = "#" # string for newer versions (which will override commentChar # because it comes later in the file) commentString = "//"
- core.filesRefLockTimeout
-
個々の参照のロックを試行する際の再試行時間(ミリ秒単位)。値0はまったく再試行しないことを意味し、-1は無期限に再試行することを意味します。デフォルトは100(つまり、100ms再試行)です。
- core.packedRefsTimeout
-
packed-refs
ファイルのロックを試行する際の再試行時間(ミリ秒単位)。値0はまったく再試行しないことを意味し、-1は無期限に再試行することを意味します。デフォルトは1000(つまり、1秒間再試行)です。 - core.pager
-
Gitコマンドで使用されるテキストビューアー(例:less)。値はシェルによって解釈されることを意図しています。優先順位は、
$GIT_PAGER
環境変数、core.pager
設定、$PAGER
、そしてコンパイル時に選択されたデフォルト(通常はless)の順です。LESS
環境変数が設定されていない場合、GitはそれをFRX
に設定します(LESS
環境変数が設定されている場合、Gitはそれをまったく変更しません)。LESS
のGitのデフォルト設定を選択的に上書きする場合は、core.pager
をless -S
などに設定できます。これはGitによってシェルに渡され、最終的なコマンドがLESS=FRX less -S
に変換されます。環境はS
オプションを設定しませんが、コマンドラインは設定し、lessに長い行を切り捨てるように指示します。同様に、core.pager
をless -+F
に設定すると、環境によって指定されたF
オプションがコマンドラインから無効になり、less
の「1画面で終了」動作が無効になります。特定のコマンドに対して特定のフラグを有効にすることができます。たとえば、pager.blame
をless -S
に設定すると、git blame
に対してのみ行の切り捨てが有効になります。同様に、
LV
環境変数が設定されていない場合、Gitはそれを-c
に設定します。別の値でLV
をエクスポートするか、core.pager
をlv +c
に設定することで、この設定を上書きできます。 - core.whitespace
-
認識する一般的な空白の問題のカンマ区切りリスト。git diffは
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
は、行末のキャリッジリターンを行終端子の一部として扱います。つまり、これを使用すると、そのキャリッジリターンの前の文字が空白でない場合、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` は、上記のすべての個々のコンポーネントを同期する集約オプションです。
-
- core.fsyncMethod
-
Git が fsync および関連プリミティブを使用してリポジトリデータを強化するために使用する戦略を示す値です。
-
`fsync` は、`fsync()` システムコールまたはプラットフォーム同等のものを利用します。
-
`writeout-only` はページキャッシュの書き戻し要求を発行しますが、ファイルシステムとストレージハードウェアによっては、システムクラッシュが発生した場合、リポジトリに追加されたデータが永続的ではない可能性があります。これはmacOSでのデフォルトモードです。
-
`batch` は、ディスク書き戻しキャッシュに複数の更新をステージングし、最後にダミーファイルの完全な fsync を実行して操作の最後にディスクキャッシュのフラッシュをトリガーする、writeout-only フラッシュを使用するモードを有効にします。
現在、`batch` モードはルーズオブジェクトファイルのみに適用されます。他のリポジトリデータは、`fsync` が指定された場合と同様に永続化されます。このモードは、HFS+ または APFS ファイルシステム上に保存されたリポジトリの macOS と、NTFS または ReFS ファイルシステム上に保存されたリポジトリの Windows で、`fsync` と同様に安全であると予想されます。
-
- core.fsyncObjectFiles
-
このブール値は、オブジェクトファイルの書き込み時に `fsync()` を有効にします。この設定は非推奨です。`core.fsync` を代わりに使用してください。
この設定は、ルーズオブジェクト形式でGitリポジトリに追加されたデータに影響します。`true` に設定されている場合、Git は fsync または同様のシステムコールを発行してキャッシュをフラッシュするため、システムのクリーンでないシャットダウン時でもルーズオブジェクトは整合性を維持します。
- core.preloadIndex
-
`git diff` などの操作の並列インデックスプリロードを有効にします。
特に、キャッシングセマンティクスが弱く、IOレイテンシが比較的高いNFSのようなファイルシステムでは、`git diff` や `git status` などの操作を高速化できます。有効にすると、Git はファイルシステムデータとのインデックス比較を並列で行い、IOのオーバーラップを可能にします。デフォルトはtrueです。
- core.unsetenvvars
-
Windows のみ: 他のプロセスを生成する前にアンセットする必要がある環境変数の名前のカンマ区切りリストです。Git for Windows は独自の Perl インタープリタを使用することにこだわっているため、デフォルトは `PERL5LIB` です。
- core.restrictinheritedhandles
-
Windows のみ: 生成されたプロセスが標準ファイルハンドル(`stdin`、`stdout`、`stderr`)のみを継承するか、すべてのハンドルを継承するかをオーバーライドします。`auto`、`true`、または `false` のいずれかになります。デフォルトは `auto` であり、Windows 7 以降では `true`、それより古い Windows バージョンでは `false` を意味します。
- core.createObject
-
`link` に設定できます。この場合、ソースの削除に続くハードリンクを使用して、オブジェクトの作成で既存のオブジェクトが上書きされないようにします。
一部のファイルシステム/オペレーティングシステムの組み合わせでは、これは信頼性がありません。その場合は、この設定を `rename` に設定します。ただし、これにより、既存のオブジェクトファイルが上書きされないことを確認するチェックが削除されます。
- core.notesRef
-
コミットメッセージを表示する際に、指定された参照に保存されているノートも表示します。参照は完全修飾されている必要があります。指定された参照が存在しない場合、エラーではありませんが、ノートを表示しないことを意味します。
この設定のデフォルトは "refs/notes/commits" であり、`GIT_NOTES_REF` 環境変数でオーバーライドできます。 git-notes[1] を参照してください。
- core.commitGraph
-
`true` の場合、git は(存在する場合)コミットグラフファイルを読み込んで、コミットのグラフ構造を解析します。デフォルトは `true` です。詳細については、git-commit-graph[1] を参照してください。
- core.useReplaceRefs
-
`false` に設定されている場合、コマンドラインで `--no-replace-objects` オプションが指定された場合と同じように動作します。詳細については、git[1] と git-replace[1] を参照してください。
- core.multiPackIndex
-
マルチパックインデックスファイルを使用して、単一のインデックスで複数のパックファイルをトラッキングします。詳細については、git-multi-pack-index[1] を参照してください。デフォルトは `true` です。
- core.sparseCheckout
-
"スパースチェックアウト"機能を有効にします。詳細については、git-sparse-checkout[1] を参照してください。
- core.sparseCheckoutCone
-
スパースチェックアウト機能の "コーンモード" を有効にします。スパースチェックアウトファイルにパターンが限定的に含まれている場合、このモードは大幅なパフォーマンス向上をもたらします。この変数を `false` に設定することで、より柔軟なパターンを指定できるように "非コーンモード" を要求できます。詳細については、git-sparse-checkout[1] を参照してください。
- core.abbrev
-
オブジェクト名が短縮される長さを設定します。指定されていないか "auto" に設定されている場合、リポジトリ内のパックオブジェクトの概数に基づいて適切な値が計算されます。これは、短縮されたオブジェクト名がしばらくの間一意のままであるのに十分なはずです。"no" に設定されている場合、短縮は行われず、オブジェクト名は全長で表示されます。最小の長さは4です。
- core.maxTreeDepth
-
ツリーのトラバース中に Git が再帰的に処理する最大深度です(例:"a/b/cde/f" の深さは 4 です)。これは、Git がクリーンに中止できるようにするためのフェールセーフであり、一般的に調整する必要はありません。Git が MSVC でコンパイルされている場合、デフォルトは 512 です。それ以外の場合は、デフォルトは 2048 です。
- credential.helper
-
ユーザー名またはパスワードの資格情報が必要な場合に呼び出される外部ヘルパーを指定します。ヘルパーは外部ストレージを参照して、ユーザーに資格情報の入力を求めるのを回避できます。通常は、可能な引数を含む資格情報ヘルパーの名前ですが、引数を含む絶対パス、または `!` を先頭に付けたシェルコマンドでもかまいません。
複数のヘルパーを定義できることに注意してください。詳細と例については、gitcredentials[7] を参照してください。
- credential.interactive
-
デフォルトでは、Git と設定されている資格情報ヘルパーは、新しい資格情報が必要な場合にユーザー入力を求めます。これらのヘルパーの多くは、資格情報がまだ有効であれば、保存されている資格情報に基づいて成功します。Gitからのユーザーインタラクティブの可能性を回避するには、`credential.interactive=false` を設定します。一部の資格情報ヘルパーもこのオプションを尊重します。
- credential.useHttpPath
-
資格情報を取得する際、http または https URL の "path" コンポーネントを重要であると見なします。デフォルトは `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 秒間再試行)です。
- diff.autoRefreshIndex
-
作業ツリーファイルと比較するために `git diff` を使用する場合、stat のみの変更を 変更済みと見なさないでください。代わりに、`git update-index --refresh` を実行して、作業ツリー内のコンテンツがインデックス内のコンテンツと一致するパスのキャッシュされた stat 情報を更新します。このオプションのデフォルトは `true` です。これは `git diff` Porcelain のみに影響し、`git diff-files` などのより低レベルの `diff` コマンドには影響しません。
- diff.dirstat
-
git-diff[1] などに対する `--dirstat` オプションのデフォルトの動作を指定する `--dirstat` パラメータのカンマ区切りリストです。デフォルトはコマンドラインでオーバーライドできます(`--dirstat=<param1,param2,...>` を使用)。(`diff.dirstat` で変更されていない場合の)フォールバックデフォルトは `changes,noncumulative,3` です。次のパラメータを使用できます。
-
changes
-
ソースから削除された行、または宛先に追加された行をカウントすることで、dirstat 数を計算します。ファイル内の純粋なコードの移動量は無視されます。つまり、ファイル内の行を並べ替えることは、他の変更ほどカウントされません。パラメータが指定されていない場合のデフォルトの動作です。
-
lines
-
通常の行ベースの diff 解析を実行し、削除/追加された行数を合計することで、dirstat 数を計算します。(バイナリファイルの場合、バイナリファイルには行の自然な概念がないため、代わりに 64 バイトのチャンクをカウントします)。これは `changes` 動作よりも高価な `--dirstat` 動作ですが、ファイル内の並べ替えられた行を他の変更と同じくらいカウントします。結果の出力は、他の `--*stat` オプションから取得したものと一貫しています。
-
files
-
変更されたファイル数を数えることで、dirstat数値を計算します。変更された各ファイルは、dirstat分析において均等にカウントされます。これは、ファイルの内容を全く調べる必要がないため、計算コストが最も低い
--dirstat
の動作です。 -
cumulative
-
子ディレクトリの変更を親ディレクトリにもカウントします。
cumulative
を使用する場合、報告されるパーセンテージの合計は100%を超える可能性があることに注意してください。デフォルト(非累積)の動作は、noncumulative
パラメータで指定できます。 - <limit>
-
整数パラメータは、カットオフパーセント(デフォルトは3%)を指定します。このパーセンテージ未満の変更に寄与するディレクトリは、出力に表示されません。
例:以下は、変更されたファイルをカウントし、変更されたファイルの総量の10%未満のディレクトリを無視し、親ディレクトリに子ディレクトリの数を累積します:
files,10,cumulative
。 -
- diff.statNameWidth
-
--stat
出力におけるファイル名部分の幅を制限します。設定されている場合、format-patchを除く、--stat
出力を生成するすべてのコマンドに適用されます。 - diff.statGraphWidth
-
--stat
出力におけるグラフ部分の幅を制限します。設定されている場合、format-patchを除く、--stat
出力を生成するすべてのコマンドに適用されます。 - diff.context
-
デフォルトの3行ではなく、<n>行のコンテキストを含むdiffを生成します。この値は-Uオプションによってオーバーライドされます。
- diff.interHunkContext
-
指定された行数まで、diffの塊間のコンテキストを表示し、互いに近い塊を融合します。この値は、
--inter-hunk-context
コマンドラインオプションのデフォルトとして機能します。 - diff.external
-
この設定変数が設定されている場合、内部のdiff機構ではなく、指定されたコマンドを使用してdiff生成が行われます。`GIT_EXTERNAL_DIFF`環境変数で上書きできます。コマンドは、git[1]の「git Diffs」で説明されているように、パラメータと共に呼び出されます。注:ファイルのサブセットでのみ外部diffプログラムを使用する場合は、代わりにgitattributes[5]を使用することを検討してください。
- diff.trustExitCode
-
このブール値がtrueに設定されている場合、
diff.external
コマンドは、入力ファイルが等しいとみなす場合は終了コード0を、異なるものとみなす場合は終了コード1を返すことが期待されます(diff(1)
と同様)。デフォルトのfalseに設定されている場合、コマンドは等しさに関係なく終了コード0を返すことが期待されます。その他の終了コードは、Gitが致命的なエラーを報告する原因となります。 - diff.ignoreSubmodules
-
--ignore-submodules
のデフォルト値を設定します。これは、git diff-filesなどの下位レベルのdiffコマンドではなく、git diff Porcelainのみに影響することに注意してください。git checkoutとgit switchも、未コミットの変更を報告する際にこの設定を尊重します。これをallに設定すると、status.submoduleSummary
が設定されている場合に、git commitとgit statusによって通常表示されるサブモジュールのサマリーが無効になります(ただし、--ignore-submodules
コマンドラインオプションでオーバーライドされる場合を除きます)。git submoduleコマンドはこの設定の影響を受けません。デフォルトでは、追跡されていないサブモジュールは無視されるように、untrackedに設定されています。 - diff.mnemonicPrefix
-
設定されている場合、git diffは、比較対象に応じて標準の "a/" と "b/" とは異なるプレフィックスペアを使用します。この設定が有効な場合、逆diff出力もプレフィックスの順序を入れ替えます。
- diff.noPrefix
-
設定されている場合、git diffはソースまたは宛先のプレフィックスを表示しません。
- diff.srcPrefix
-
設定されている場合、git diffはこのソースプレフィックスを使用します。デフォルトは "a/" です。
- diff.dstPrefix
-
設定されている場合、git diffはこの宛先プレフィックスを使用します。デフォルトは "b/" です。
- 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 Porcelainのみに影響し、git-diff-files[1]などの下位レベルのコマンドには影響しないことに注意してください。
- diff.suppressBlankEmpty
-
空の出力行の前にスペースを印刷するという標準の動作を抑制するブール値です。デフォルトはfalseです。
- diff.submodule
-
サブモジュールでの違いが表示される形式を指定します。"short"形式は、範囲の開始と終了時点のコミット名のみを表示します。"log"形式は、git-submodule[1]の
summary
のように、範囲内のコミットをリストします。"diff"形式は、サブモジュールの変更された内容のインラインdiffを表示します。デフォルトは"short"です。 - diff.wordRegex
-
単語単位の差分計算を行う際に、「単語」を決定するために使用されるPOSIX拡張正規表現です。正規表現に一致する文字列は「単語」であり、その他の文字は無視可能な空白です。
- diff.<driver>.command
-
カスタムdiffドライバコマンド。詳細はgitattributes[5]を参照してください。
- diff.<driver>.trustExitCode
-
このブール値がtrueに設定されている場合、
diff.<driver>.command
コマンドは、入力ファイルが等しいとみなす場合は終了コード0を、異なるものとみなす場合は終了コード1を返すことが期待されます(diff(1)
と同様)。デフォルトのfalseに設定されている場合、コマンドは等しさに関係なく終了コード0を返すことが期待されます。その他の終了コードは、Gitが致命的なエラーを報告する原因となります。 - diff.<driver>.xfuncname
-
diffドライバがハンクヘッダーを認識するために使用する正規表現です。組み込みパターンも使用できます。詳細はgitattributes[5]を参照してください。
- diff.<driver>.binary
-
このオプションをtrueに設定して、diffドライバにファイルをバイナリとして扱うようにします。詳細はgitattributes[5]を参照してください。
- diff.<driver>.textconv
-
diffドライバがファイルのテキスト変換バージョンを生成するために呼び出すコマンドです。変換の結果は、人間が読めるdiffを生成するために使用されます。詳細はgitattributes[5]を参照してください。
- diff.<driver>.wordRegex
-
diffドライバが行内の単語を分割するために使用する正規表現です。詳細はgitattributes[5]を参照してください。
- diff.<driver>.cachetextconv
-
このオプションをtrueに設定して、diffドライバにテキスト変換の出力をキャッシュさせるようにします。詳細はgitattributes[5]を参照してください。
-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
kompare
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
- diff.indentHeuristic
-
パッチを読みやすくするためにdiffの塊の境界をシフトするというデフォルトのヒューリスティックを無効にするには、このオプションを
false
に設定します。 - diff.algorithm
-
diffアルゴリズムを選択します。バリエーションは以下のとおりです。
- diff.wsErrorHighlight
-
diffの
context
、old
、またはnew
行の空白エラーを強調表示します。複数の値はカンマで区切られ、none
は以前の値をリセットし、default
はリストをnew
にリセットし、all
はold,new,context
の略記です。空白エラーはcolor.diff.whitespace
で色付けされます。コマンドラインオプション--ws-error-highlight=<kind>
はこの設定をオーバーライドします。 - diff.colorMoved
-
有効な
<mode>
または真の値に設定されている場合、diff内の移動された行は異なる色で表示されます。有効なモードの詳細については、git-diff[1]の--color-movedを参照してください。単にtrueに設定すると、デフォルトの色モードが使用されます。falseに設定すると、移動された行は色付けされません。 - diff.colorMovedWS
-
移動された行が例えば
diff.colorMoved
設定を使用して色付けされる場合、このオプションはスペースの処理方法を<mode>
制御します。有効なモードの詳細については、git-diff[1]の--color-moved-wsを参照してください。 - diff.tool
-
git-difftool[1]で使用される差分ツールを制御します。この変数は
merge.tool
で設定された値を上書きします。以下に、有効な組み込み値を示します。その他の値はカスタム差分ツールとして扱われ、対応するdifftool.<tool>.cmd変数の定義が必要です。 - diff.guitool
-
-g/--guiフラグが指定された場合にgit-difftool[1]で使用される差分ツールを制御します。この変数は
merge.guitool
で設定された値を上書きします。以下に、有効な組み込み値を示します。その他の値はカスタム差分ツールとして扱われ、対応するdifftool.<guitool>.cmd変数の定義が必要です。 - difftool.<tool>.cmd
-
指定された差分ツールを起動するコマンドを指定します。指定されたコマンドは、以下の変数が使用可能なシェルで評価されます。LOCALは差分の前画像の内容を含む一時ファイルの名前に設定され、REMOTEは差分の後画像の内容を含む一時ファイルの名前に設定されます。
git-difftool[1]の
--tool=<tool>
オプションの詳細を参照してください。 - difftool.<tool>.path
-
指定されたツールのパスを上書きします。ツールがPATHにない場合に便利です。
- difftool.trustExitCode
-
起動された差分ツールがゼロ以外の終了ステータスを返した場合、difftoolを終了します。
git-difftool[1]の
--trust-exit-code
オプションの詳細を参照してください。 - difftool.prompt
-
差分ツールの起動前にプロンプトを表示します。
- difftool.guiDefault
-
デフォルトで
diff.guitool
を使用するにはtrue
を、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.compatObjectFormat
-
使用する互換性のあるハッシュアルゴリズムを指定します。許容される値は
sha1
とsha256
です。指定された値はextensions.objectFormat
の値と異なる必要があります。これにより、objectFormatがこのcompatObjectFormatと一致するGitリポジトリ間のクライアントレベルの相互運用性が可能になります。特に、完全に実装されると、objectFormatがcompatObjectFormatと一致するリポジトリからのプッシュとプルが可能になります。また、objectFormatでエンコードされたOIDに加えて、compatObjectFormatでエンコードされたOIDを使用して、ローカルでオブジェクトを指定することもできます。 - extensions.refStorage
-
使用する参照ストレージ形式を指定します。許容される値は次のとおりです。
-
files
: packed-refsを含む個別のファイル。これがデフォルトです。 -
reftable
: reftable形式。この形式は実験的なもので、内部構造は変更される可能性があります。
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
を有効にする場合は、必要に応じて、共通の設定ファイルからメインのワークツリーのconfig.worktree
ファイル(存在する場合)に特定の値を移動する必要があります。-
core.worktree
は$GIT_COMMON_DIR/config
から$GIT_COMMON_DIR/config.worktree
に移動する必要があります。 -
core.bare
がtrueの場合、$GIT_COMMON_DIR/config
から$GIT_COMMON_DIR/config.worktree
に移動する必要があります。各ワークツリーのカスタマイズ可能なsparse-checkout設定に応じて、
core.sparseCheckout
とcore.sparseCheckoutCone
の場所を調整することもできます。デフォルトでは、git sparse-checkout
ビルトインはextensions.worktreeConfig
を有効にし、これらの設定値をワークツリーごとに割り当て、$GIT_DIR/info/sparse-checkout
ファイルを使用して各ワークツリーのスパース性を個別に指定します。git-sparse-checkout[1]の詳細を参照してください。歴史的な理由から、
extensions.worktreeConfig
はcore.repositoryFormatVersion
設定に関係なく尊重されます。
-
- fastimport.unpackLimit
-
git-fast-import[1]によってインポートされたオブジェクト数がこの制限を下回っている場合、オブジェクトは個別のオブジェクトファイルに展開されます。ただし、インポートされたオブジェクト数がこの制限に達するか、またはそれを超える場合、パックはパックとして保存されます。fast-importからのパックを保存すると、特にファイルシステムが遅い場合、インポート操作をより高速に完了できます。設定されていない場合、代わりに
transfer.unpackLimit
の値が使用されます。 - feature.*
-
feature.
で始まる設定は、他の設定のグループのデフォルトを変更します。これらのグループは、Git開発者コミュニティによって推奨されるデフォルトとして作成され、変更される可能性があります。特に、新しい設定オプションが異なるデフォルトで追加される可能性があります。 - feature.experimental
-
Gitの新機能であり、将来のデフォルトとして検討されている設定オプションを有効にします。ここに含まれる設定は、マイナーバージョンの更新を含む各リリースで追加または削除される可能性があります。これらの設定は非常に新しいものであるため、意図しない相互作用が発生する可能性があります。実験的機能に関するフィードバックを提供することに関心がある場合は、この設定を有効にしてください。新しいデフォルト値は次のとおりです。
-
fetch.negotiationAlgorithm=skipping
は、一度にスキップするコミット数を増やすことでフェッチネゴシエーション時間を改善し、ラウンドトリップ数を減らす可能性があります。 -
pack.useBitmapBoundaryTraversal=true
は、少ないオブジェクトを歩くことでビットマップトラバーサル時間を改善する可能性があります。 -
pack.allowPackReuse=multi
は、1つのパックだけでなく複数のパックからオブジェクトを再利用することで、パックの作成にかかる時間を短縮する可能性があります。
-
- feature.manyFiles
-
作業ディレクトリに多くのファイルがあるリポジトリを最適化する設定オプションを有効にします。多くのファイルでは、
git status
やgit checkout
などのコマンドが遅くなる可能性があり、これらの新しいデフォルトによりパフォーマンスが向上します。-
index.skipHash=true
は、末尾のチェックサムを計算しないことでインデックスの書き込みを高速化します。これにより、2.13.0より前のGitバージョンはインデックスの解析を拒否し、2.40.0より前のGitバージョンはgit fsck
中に破損したインデックスを報告することに注意してください。 -
index.version=4
は、インデックスでパスプレフィックス圧縮を有効にします。 -
core.untrackedCache=true
は、未追跡キャッシュを有効にします。この設定は、お使いのマシンでmtimeが機能していることを前提としています。
-
- fetch.recurseSubmodules
-
このオプションは、
git fetch
(およびgit pull
の基本となるfetch)が、設定されたサブモジュールに再帰的にフェッチするかどうかを制御します。このオプションは、ブール値または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ネイティブ転送を介してフェッチされたオブジェクト数がこの制限を下回っている場合、オブジェクトは個別のオブジェクトファイルに展開されます。ただし、受信したオブジェクト数がこの制限に達するか、またはそれを超える場合、不足しているデルタベースを追加した後に、受信したパックはパックとして保存されます。プッシュからのパックを保存すると、特にファイルシステムが遅い場合、プッシュ操作をより高速に完了できます。設定されていない場合、代わりに
transfer.unpackLimit
の値が使用されます。 - fetch.prune
-
trueの場合、fetchはコマンドラインで
--prune
オプションが指定された場合と同じように動作します。remote.<name>.prune
とgit-fetch[1]のPRUNINGセクションも参照してください。 - fetch.pruneTags
-
trueの場合、すでに設定されていない場合、プルーニング時に
refs/tags/*:refs/tags/*
refspecが指定された場合と同じようにfetchが動作します。これにより、このオプションとfetch.prune
の両方を設定して、上流の参照との1対1のマッピングを維持できます。remote.<name>.pruneTags
とgit-fetch[1]のPRUNINGセクションも参照してください。 - fetch.all
-
trueの場合、fetchは使用可能なすべてのリモートの更新を試みます。この動作は、
--no-all
を渡すか、フェッチするリモートを1つ以上明示的に指定することで上書きできます。デフォルトはfalseです。 - fetch.output
-
参照更新ステータスの表示方法を制御します。有効な値は
full
とcompact
です。デフォルト値はfull
です。git-fetch[1]のOUTPUTセクションの詳細を参照してください。 - fetch.negotiationAlgorithm
-
ローカルリポジトリ内のコミットに関する情報を、サーバーが送信するパックファイルの内容をネゴシエートする際に送信する方法を制御します。「consecutive」に設定すると、連続するコミットを1つずつ確認するアルゴリズムを使用します。「skipping」に設定すると、より高速に収束させるためにコミットをスキップするアルゴリズムを使用しますが、必要以上に大きなパックファイルになる可能性があります。「noop」に設定すると、情報をまったく送信しません。これにより、ほとんど確実に必要以上に大きなパックファイルになりますが、ネゴシエーションステップをスキップします。「default」に設定すると、以前に設定された設定を上書きし、デフォルトの動作を使用します。デフォルトは通常「consecutive」ですが、
feature.experimental
がtrueの場合、「skipping」になります。不明な値が指定されると、git fetchはエラーを発生させます。git-fetch[1]の
--negotiate-only
オプションと--negotiation-tip
オプションも参照してください。 - fetch.showForcedUpdates
-
git-fetch[1]およびgit-pull[1]コマンドで
--no-show-forced-updates
を有効にするには、falseに設定します。デフォルトはtrueです。 - fetch.parallel
-
一度に並列実行されるフェッチ操作の最大数を指定します(git-fetch[1]の
--multiple
オプションが有効な場合のサブレポジトリまたはリモート)。0の値は、ある程度の妥当なデフォルト値を返します。設定されていない場合、デフォルトは1になります。
サブレポジトリの場合、この設定は
submodule.fetchJobs
コンフィグ設定を使用してオーバーライドできます。 - fetch.writeCommitGraph
-
リモートからパックファイルをダウンロードする
git fetch
コマンドを実行するたびにコミットグラフを書き込むには、trueに設定します。--split
オプションを使用すると、ほとんどの実行で既存のコミットグラフファイルの上に非常に小さなコミットグラフファイルが作成されます。場合によっては、これらのファイルがマージされ、書き込みに時間がかかることがあります。更新されたコミットグラフファイルがあると、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
-
"creationToken"ヒューリスティックを使用するバンドルリストから増分的にフェッチするために
fetch.bundleURI
を使用する場合、このコンフィグ値は、ダウンロードされたバンドルの最大creationToken
値を格納します。この値は、広告されているcreationToken
がこの値よりも厳密に大きい場合、将来バンドルをダウンロードしないようにするために使用されます。creation token値は、特定のバンドルURIを提供するプロバイダーによって選択されます。
fetch.bundleURI
のURIを変更する場合は、フェッチする前にfetch.bundleCreationToken
値の値を削除してください。 - filter.<driver>.clean
-
チェックイン時にワークツリーファイルの内容をブロブに変換するために使用されるコマンドです。詳細はgitattributes[5]を参照してください。
- filter.<driver>.smudge
-
チェックアウト時にブロブオブジェクトの内容をワークツリーファイルに変換するために使用されるコマンドです。詳細はgitattributes[5]を参照してください。
- format.attach
-
format-patchのデフォルトとしてmultipart/mixed添付ファイルを有効にします。値は二重引用符で囲まれた文字列にすることもでき、添付ファイルをデフォルトとして有効にし、値を境界として設定します。git-format-patch[1]の--attachオプションを参照してください。以前の値を無効にするには、空文字列に設定します。
- format.from
-
format-patchへの
--from
オプションのデフォルト値を提供します。ブール値、または名前とメールアドレスを受け入れます。falseの場合、format-patchは--no-from
をデフォルトで使用し、パッチメールの「From:」フィールドにコミットの作者を直接使用します。trueの場合、format-patchは--from
をデフォルトで使用し、パッチメールの「From:」フィールドにコミッターのIDを使用し、異なる場合はパッチメールの本文に「From:」フィールドを含めます。ブール値以外の値に設定すると、format-patchはコミッターのIDの代わりにその値を使用します。デフォルトはfalseです。 - format.forceInBodyFrom
-
format-patchへの
--[no-]force-in-body-from
オプションのデフォルト値を提供します。デフォルトはfalseです。 - format.numbered
-
パッチの件名にシーケンス番号を有効または無効にすることができるブール値です。デフォルトは「auto」で、パッチが2つ以上ある場合にのみ有効になります。「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が呼び出されたときにカバーレターを生成するかどうかを制御するブール値ですが、パッチが2つ以上ある場合にのみカバーレターを生成するように「auto」に設定することもできます。デフォルトはfalseです。
- format.outputDirectory
-
現在の作業ディレクトリの代わりに、結果ファイルを保存するカスタムディレクトリを設定します。すべてのディレクトリコンポーネントが作成されます。
- format.filenameMaxLength
-
format-patch
コマンドによって生成される出力ファイル名の最大長です。デフォルトは64です。--filename-max-length=<n>
コマンドラインオプションでオーバーライドできます。 - format.useAutoBase
-
format-patchの
--base=auto
オプションをデフォルトで有効にすることができるブール値です。適切なベースが利用可能な場合は--base=auto
を有効にすることを許可しますが、そうでない場合はフォーマットが終了せずにベース情報の追加をスキップするように「whenAble」に設定することもできます。 - format.notes
-
format-patchへの
--notes
オプションのデフォルト値を提供します。ブール値、またはメモを取得する場所を指定するrefを受け入れます。falseの場合、format-patchは--no-notes
をデフォルトで使用します。trueの場合、format-patchは--notes
をデフォルトで使用します。ブール値以外の値に設定すると、format-patchは--notes=<ref>
をデフォルトで使用します。ここでref
はブール値以外の値です。デフォルトはfalseです。refs/notes/true
というrefを使用する場合は、そのリテラルを使用してください。複数のnotes refを含めることができるように、この設定を複数回指定できます。その場合、渡された複数の
--[no-]notes[=]
オプションと同様に動作します。つまり、true
の値はデフォルトのメモを表示し、<ref>
の値はそのnotes refからのメモも表示し、false
の値は以前の設定を無効にしてメモを表示しません。例えば、
[format] notes = true notes = foo notes = false notes = bar
は
refs/notes/bar
からのメモのみを表示します。 - format.mboxrd
-
--stdout
が使用されている場合に堅牢な"mboxrd"形式を有効にして"^>+From "行をエスケープするブール値です。 - format.noprefix
-
設定されている場合、パッチにソースまたはデスティネーションのプレフィックスを表示しません。これは、
git diff
で使用されるdiff.noprefix
オプションと同等ですが(ただし、format-patch
では尊重されません)、この設定を行うと、生成するパッチの受信者は-p0
オプションを使用して適用する必要があります。 - fsck.<msg-id>
-
fsck実行中に、現在のGitバージョンでは生成されず、
transfer.fsckObjects
が設定されている場合にも転送されないレガシーデータに関する問題が検出される場合があります。この機能は、このようなデータを含むレガシーリポジトリを扱うことを目的としています。fsck.<msg-id>
の設定はgit-fsck[1]によって認識されますが、このようなデータのプッシュを受け入れるにはreceive.fsck.<msg-id>
を設定し、クローンまたはフェッチするにはfetch.fsck.<msg-id>
を設定します。簡潔にするため、以降のドキュメントでは
fsck.*
について説明しますが、対応するreceive.fsck.*
およびfetch.fsck.*
変数にも同じことが当てはまります。color.ui
やcore.editor
などの変数とは異なり、receive.fsck.<msg-id>
およびfetch.fsck.<msg-id>
変数は、設定されていない場合、fsck.<msg-id>
設定値を引き継ぎません。異なる状況で同じfsck設定を一貫して構成するには、これら3つの変数すべてに同じ値を設定する必要があります。fsck.<msg-id>
が設定されている場合、エラーを警告に、警告をエラーに変更できます。<msg-id>
はfsckメッセージID、値はerror
、warn
、ignore
のいずれかです。便宜上、fsckはメッセージIDをエラー/警告の前に付加します。例えば、「missingEmail: invalid author/committer line - missing email」の場合、fsck.missingEmail = ignore
を設定すると、その問題は非表示になります。一般的に、問題のあるオブジェクトの種類を無視するリストを作成する代わりに、
fsck.skipList
を使用して問題のある既存のオブジェクトを列挙する方が優れています。後者の方法では、同じ種類の新しい問題を見逃す可能性があるためです。未知の
fsck.<msg-id>
値を設定すると、fsckは異常終了しますが、receive.fsck.<msg-id>
およびfetch.fsck.<msg-id>
で同じことを行っても、Gitは警告するだけです。サポートされている
<msg-id>
の値については、git-fsck[1]の「Fsck Messages」セクションを参照してください。 - fsck.skipList
-
非致命的エラーがあり、無視する必要があるオブジェクト名(1行につき1つの非省略SHA-1)のリストへのパス。Git 2.20以降のバージョンでは、コメント(#)、空行、先頭と末尾の空白は無視されます。古いバージョンでは、SHA-1以外のものはエラーになります。
この機能は、無効なコミッターメールアドレスなど、安全に無視できるエラーを含む初期コミットが存在するプロジェクトを、そのエラーがあっても受け入れる必要がある場合に役立ちます。注:この設定では、破損したオブジェクトをスキップすることはできません。
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で使用されるデルタ圧縮アルゴリズムで使用されるdepthパラメータ。デフォルトは50で、
--aggressive
を使用しない場合の--depth
オプションのデフォルト値と同じです。詳細については、git-repack[1]の
--depth
オプションのドキュメントを参照してください。 - gc.aggressiveWindow
-
git gc --aggressiveで使用されるデルタ圧縮アルゴリズムで使用されるウィンドウサイズパラメータ。デフォルトは250で、デフォルトの
--window
値である10よりもはるかに大きなウィンドウサイズです。詳細については、git-repack[1]の
--window
オプションのドキュメントを参照してください。 - gc.auto
-
リポジトリにこの数よりも多くの分離オブジェクトがある場合、
git gc --auto
はそれらをパックします。一部のPorcelainコマンドは、このコマンドを使用して、時々軽量のガベージコレクションを実行します。デフォルト値は6700です。これを0に設定すると、分離オブジェクトの数に基づく自動パッキングだけでなく、
gc.autoPackLimit
など、git gc --auto
が作業の有無を判断するために使用するその他のヒューリスティックも無効になります。 - gc.autoPackLimit
-
*.keep
ファイルでマークされていないパックがリポジトリにこの数よりも多く存在する場合、git gc --auto
はそれらを1つの大きなパックに統合します。デフォルト値は50です。これを0に設定すると無効になります。gc.auto
を0に設定しても無効になります。以下の
gc.bigPackThreshold
設定変数を参照してください。使用されている場合、自動パック制限の動作に影響します。 - gc.autoDetach
-
システムがサポートしている場合、
git gc --auto
を直ちに返し、バックグラウンドで実行します。デフォルトはtrueです。この設定変数は、maintenance.autoDetach
が設定されていない場合のフォールバックとして機能します。 - gc.bigPackThreshold
-
0以外の場合、
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]の実行時にコミットグラフファイルが書き換えられます。
git gc --auto
を使用する場合、ハウスキーピングが必要な場合はコミットグラフが更新されます。デフォルトはtrueです。git-commit-graph[1]を参照してください。 - gc.logExpiry
-
gc.logファイルが存在する場合、そのファイルがgc.logExpiryよりも古い場合を除き、
git gc --auto
はその内容を出力してステータス0で終了します。デフォルトは "1.day" です。値の指定方法については、gc.pruneExpire
を参照してください。 - gc.packRefs
-
リポジトリで
git pack-refs
を実行すると、HTTPなどのダムトランスポートを介して、1.5.1.2より前のGitバージョンではクローンできなくなります。この変数は、git gcがgit pack-refs
を実行するかどうかを決定します。これをnotbare
に設定すると、すべての非ベアリポジトリで有効になります。ブール値にも設定できます。デフォルトはtrue
です。 - gc.cruftPacks
-
到達不能なオブジェクトを分離オブジェクトとしてではなく、クラフトパック(git-repack[1]を参照)に格納します。デフォルトは
true
です。 - gc.maxCruftSize
-
再パック時の新しいクラフトパックのサイズを制限します。
--max-cruft-size
に加えて指定された場合、コマンドラインオプションが優先されます。git-repack[1]の--max-cruft-size
オプションを参照してください。 - gc.pruneExpire
-
git gcが実行されると、prune --expire 2.weeks.ago(および
gc.cruftPacks
または--cruft
を使用してクラフトパックを使用する場合はrepack --cruft --cruft-expiration 2.weeks.ago)が呼び出されます。この設定変数を使用して猶予期間を上書きします。"now"という値を使用すると、この猶予期間を無効にして到達不能なオブジェクトをすぐに削除し、"never"を使用すると削除を抑制できます。この機能は、git gcが別のプロセスがリポジトリに書き込んでいるのと同時に実行される場合の破損を防ぐのに役立ちます。git-gc[1]の「NOTES」セクションを参照してください。 - gc.worktreePruneExpire
-
git gcが実行されると、git worktree prune --expire 3.months.agoが呼び出されます。この設定変数を使用して、異なる猶予期間を設定できます。"now"という値を使用すると、猶予期間を無効にして
$GIT_DIR/worktrees
をすぐに削除し、"never"を使用すると削除を抑制できます。 - gc.reflogExpire
- gc.<pattern>.reflogExpire
-
git reflog expireはこの時間よりも古いreflogエントリを削除します。デフォルトは90日です。"now"という値を使用すると、すべてのエントリがすぐに期限切れになり、"never"を使用すると、期限切れが完全に抑制されます。中央に"<pattern>"(例:"refs/stash")がある場合、設定はその<pattern>に一致するrefsのみに適用されます。
- gc.reflogExpireUnreachable
- gc.<pattern>.reflogExpireUnreachable
-
git reflog expireはこの時間よりも古く、現在の先端から到達できないreflogエントリを削除します。デフォルトは30日です。"now"という値を使用すると、すべてのエントリがすぐに期限切れになり、"never"を使用すると、期限切れが完全に抑制されます。中央に"<pattern>"(例:"refs/stash")がある場合、設定はその<pattern>に一致するrefsのみに適用されます。
これらのタイプのエントリは、一般的に
git commit --amend
またはgit rebase
の使用によって作成され、修正またはリベースが行われる前のコミットです。これらの変更は現在のプロジェクトの一部ではないため、ほとんどのユーザーはそれらをより早く期限切れにしたいと考えており、デフォルトがgc.reflogExpire
よりも積極的である理由です。 - gc.recentObjectsHook
-
オブジェクトを削除するかどうかを検討する際に(クラフトパックを生成する場合でも、到達不能なオブジェクトを分離オブジェクトとして格納する場合でも)、シェルを使用して指定されたコマンドを実行します。その出力をオブジェクトIDとして解釈し、Gitはそれらを年齢に関係なく「最近の」オブジェクトとして扱います。それらのmtimesを「now」として扱うことで、出力に記載されているオブジェクト(およびその子孫)は、実際の年齢に関係なく保持されます。
出力は、1行に正確に1つの16進オブジェクトIDを含み、それ以外は何も含まれてはいけません。リポジトリに見つからないオブジェクトは無視されます。複数のフックがサポートされていますが、すべてが正常に終了する必要があります。そうでなければ、操作(クラフトパックの生成または到達不能なオブジェクトのアンパック)は停止されます。
- gc.repackFilter
-
再パック時に、指定されたフィルターを使用して特定のオブジェクトを別のパックファイルに移動します。git-repack[1]の
--filter=<filter-spec>
オプションを参照してください。 - gc.repackFilterTo
-
リパック時にフィルタを使用する場合(
gc.repackFilter
参照)、指定された場所にフィルタリングされたオブジェクトを含むパックファイルが作成されます。 **警告:** 指定された場所は、例えばGitの代替機構を使用してアクセス可能である必要があります。アクセスできない場合、Gitはそのパックファイル内のオブジェクトにアクセスできず、リポジトリが破損していると見なされる可能性があります。 git-repack[1] の--filter-to=<dir>
オプションと、gitrepository-layout[5] のobjects/info/alternates
セクションを参照してください。 - 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」です。
- gitcvs.enabled
-
このリポジトリでCVSサーバーインターフェースを有効にするかどうか。git-cvsserver[1]を参照してください。
- gitcvs.logFile
-
CVSサーバーインターフェースが様々な情報をログ出力するログファイルへのパス。git-cvsserver[1]を参照してください。
- gitcvs.usecrlfattr
-
trueの場合、サーバーはファイルの改行変換属性を検索して使用する
-k
モードを決定します。属性によってGitがファイルをテキストとして扱うことが強制される場合、-k
モードは空白のままになり、CVSクライアントはそれをテキストとして扱います。テキスト変換が抑制される場合、ファイルは-kbモードで設定され、クライアントが実行する可能性のある改行の変更が抑制されます。属性でファイルの種類を決定できない場合は、gitcvs.allBinary
が使用されます。gitattributes[5]を参照してください。 - gitcvs.allBinary
-
gitcvs.usecrlfattr
が正しい-kbモードを解決できない場合に使用されます。trueの場合、解決されていないすべてのファイルは-kbモードでクライアントに送信されます。これにより、クライアントはそれらをバイナリファイルとして扱い、それ以外の場合は行われる可能性のある改行の変更が抑制されます。「guess」に設定されている場合、ファイルの内容が調べられ、core.autocrlf
と同様にバイナリかどうかが決定されます。 - gitcvs.dbName
-
Gitリポジトリから取得したリビジョン情報をキャッシュするためにgit-cvsserverで使用されるデータベース。正確な意味は使用されるデータベースドライバによって異なります。SQLite(デフォルトドライバ)の場合、これはファイル名です。変数置換をサポートします(詳細についてはgit-cvsserver[1]を参照)。セミコロン(
;
)を含めることはできません。デフォルト:%Ggitcvs.%m.sqlite - gitcvs.dbDriver
-
使用するPerl DBIドライバ。ここでは使用可能なドライバを指定できますが、動作しない場合があります。git-cvsserverはDBD::SQLiteでテストされており、DBD::Pgでも動作すると報告されていますが、DBD::mysqlでは動作しないと報告されています。実験的な機能です。ダブルコロン(
:
)を含めることはできません。デフォルト:SQLite。git-cvsserver[1]を参照してください。 - gitcvs.dbUser, gitcvs.dbPass
-
データベースのユーザー名とパスワード。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」のいずれか)として指定して、特定のアクセス方法のみに適用させることができます。
- 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]の説明を参照してください。
- gpg.program
-
PGP署名を作成または検証する際に、
$PATH
にある"gpg
"の代わりにこのカスタムプログラムを使用します。このプログラムは、GPGと同じコマンドラインインターフェースをサポートする必要があります。つまり、分離された署名を検証するには"gpg --verify $signature - <$file
"を実行し、プログラムはコード0で終了することで有効な署名を知らせます。ASCIIアーマードの分離された署名を生成するには、"gpg -bsau $key
"の標準入力に署名する内容を入力し、プログラムは結果を標準出力に出力する必要があります。 - gpg.format
-
--gpg-sign
で署名する際に使用するキー形式を指定します。デフォルトは「openpgp」です。他の可能な値は「x509」、「ssh」です。選択した
gpg.format
に基づいて異なる署名形式については、gitformat-signature[5]を参照してください。 - gpg.<format>.program
-
選択した署名形式に使用するプログラムをカスタマイズするために使用します(
gpg.program
とgpg.format
を参照)。gpg.program
は、gpg.openpgp.program
のレガシーシノニムとして引き続き使用できます。gpg.x509.program
のデフォルト値は「gpgsm」、gpg.ssh.program
のデフォルト値は「ssh-keygen」です。 - gpg.minTrustLevel
-
署名検証の最小信頼レベルを指定します。このオプションが設定されていない場合、マージ操作の署名検証には、少なくとも
marginal
の信頼レベルを持つキーが必要です。署名検証を実行するその他の操作には、少なくともundefined
の信頼レベルを持つキーが必要です。このオプションを設定すると、すべての操作に必要な信頼レベルが上書きされます。サポートされる値(重要度の昇順)-
undefined
-
never
-
marginal
-
fully
-
ultimate
-
- gpg.ssh.defaultKeyCommand
-
user.signingkey
が設定されておらず、ssh署名が要求された場合に実行されるコマンド。正常に終了すると、その出力の最初の行にkey::
で始まる有効なssh公開キーが期待されます。これにより、user.signingKey
を静的に構成することが実際的でない場合に、正しい公開キーの動的な検索を行うスクリプトを使用できます。たとえば、キーやSSH証明書が頻繁にローテーションされる場合、または適切なキーの選択がGitでは不明な外部要因に依存する場合などです。 - gpg.ssh.allowedSignersFile
-
信頼するssh公開キーを含むファイル。このファイルは、プリンシパルに続く1つ以上の行とssh公開キーで構成されます。例:
user1@example.com,user2@example.com ssh-rsa AAAAX1...
詳細については、ssh-keygen(1)の「ALLOWED SIGNERS」を参照してください。プリンシパルはキーを識別するためだけに使用され、署名を検証する際に利用できます。SSHには、gpgのような信頼レベルの概念がありません。有効な署名と信頼できる署名を区別するために、公開キーがallowedSignersFileにある場合、署名検証の信頼レベルは
fully
に設定されます。それ以外の場合は、信頼レベルはundefined
になり、git verify-commit/tagは失敗します。このファイルはリポジトリ外の場所に設定でき、各開発者は独自の信頼ストアを維持できます。中央リポジトリサーバーは、プッシュアクセスを持つsshキーからこのファイルを自動的に生成して、コードを検証することができます。企業環境では、このファイルは、開発者のsshキーを既に処理している自動化によってグローバルな場所で生成される可能性があります。
署名されたコミットのみを許可するリポジトリは、作業ツリーの最上位レベルからの相対パスを使用して、ファイルをリポジトリ自体に保存できます。これにより、既に有効なキーを持つコミッターのみがキーリング内のキーを追加または変更できます。
OpenSSH 8.8以降、このファイルでは、有効期限後と有効期限前のオプションを使用してキーの有効期間を指定できます。署名作成時に署名キーが有効であった場合、Gitは署名を有効とマークします。これにより、ユーザーは署名キーを変更しても、以前に作成された署名がすべて無効になることはありません。
cert-authorityオプション(ssh-keygen(1)の「CERTIFICATES」を参照)を使用したSSH CAキーも有効です。
- gpg.ssh.revocationFile
-
SSH KRL、または取り消された公開キーのリスト(プリンシパルのプレフィックスなし)。詳細については、ssh-keygen(1)を参照してください。このファイルに公開キーが見つかった場合、常に信頼レベル「never」として扱われ、署名は無効として表示されます。
- 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 リポジトリの外で
git grep
が実行された場合、git grep --no-index
にフォールバックします。デフォルトは false です。 - 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] がフェッチの実行時にリモート追跡ブランチをプルーニングする場合は "true"。デフォルト値は "false" です。
- gui.trustmtime
-
git-gui[1] がファイルの最終更新時刻を信頼するかどうかを決定します。デフォルトでは、タイムスタンプは信頼されません。
- gui.spellingDictionary
-
git-gui[1] でコミットメッセージのスペルチェックに使用される辞書を指定します。"none" に設定すると、スペルチェックが無効になります。
- gui.fastCopyBlame
-
true の場合、git gui blame は元の場所の検出に
-C -C
の代わりに-C
を使用します。これにより、大規模なリポジトリでの blame が大幅に高速化されますが、コピー検出の精度は低下します。 - gui.copyBlameThreshold
-
git gui blame の元の場所の検出で使用するしきい値を、英数字文字数で指定します。コピー検出の詳細については、git-blame[1] のマニュアルを参照してください。
- gui.blamehistoryctx
-
git gui blame から "Show History Context" メニュー項目が呼び出された場合、gitk[1] に選択されたコミットに対して表示する履歴コンテキストの範囲(日数)を指定します。この変数が 0 に設定されている場合、履歴全体が表示されます。
- guitool.<name>.cmd
-
git-gui[1] の
Tools
メニューの対応する項目が呼び出されたときに実行するシェルコマンドラインを指定します。このオプションはすべてのツールで必須です。コマンドは作業ディレクトリのルートから実行され、環境ではツールの名前がGIT_GUITOOL
、現在選択されているファイルの名前が FILENAME、現在のブランチの名前が CUR_BRANCH として渡されます(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
-
ユーザーから有効な単一のレビジョンを要求し、
REVISION
環境変数を設定します。その他の点では、このオプションは 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 は同じです。
- help.autoCorrect
-
Git がタイプミスを検出し、エラーと類似した有効なコマンドを正確に1つ特定できる場合、Git は正しいコマンドを提案したり、提案を自動的に実行したりしようとします。可能な設定値は次のとおりです。
-
0 (デフォルト): 提案されたコマンドを表示します。
-
正の数: 指定された 1/10 秒後(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][/path] です。これはリモートごとに上書きできます。remote.<name>.proxy を参照してください。ただし、どのように構成されていても、すべてのプロキシは完全に透過的でなければならず、リクエストまたはレスポンスをいかなる方法でも変更、変換、またはバッファしてはなりません。完全に透過的でないプロキシは、Git でさまざまな種類の障害を引き起こすことが知られています。
- 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-Negotiate 認証(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.proactiveAuth
-
最初に認証されていない試行を行い、401 レスポンスを受信せずに認証を試みます。これは、すべてのリクエストが認証されるようにするために使用できます。
http.emptyAuth
が true に設定されている場合、この値は無効になります。使用されている認証ヘルパーが認証スキームを指定する場合(つまり、
authtype
フィールドを介して)、その値が使用されます。スキームなしでユーザー名とパスワードが提供されている場合、基本認証が使用されます。オプションの値は、ヘルパーから要求されるスキームを決定します。可能な値は次のとおりです。-
basic
- ヘルパーから基本認証を要求します。 -
auto
- ヘルパーが適切なスキームを選択できるようにします。 -
none
- プロアクティブな認証を無効にします。
基本認証が選択されている場合、プレーンテキストの資格情報を誤って公開してしまう可能性があるため、この構成では常に TLS を使用する必要があります。
-
- http.delegation
-
GSSAPI 資格情報の委任を制御します。委任は、バージョン 7.21.7 以降の libcurl ではデフォルトで無効になっています。ユーザー資格情報に関する委任が許可されていることをサーバーに伝えるパラメーターを設定します。GSS/kerberos と共に使用します。可能な値は次のとおりです。
-
none
- 委任を許可しません。 -
policy
- KerberosサービスチケットにOK-AS-DELEGATEフラグが設定されている場合にのみ委任します。これはレルムポリシーの問題です。 -
always
- サーバーによる委任を無条件に許可します。
-
- http.extraHeader
-
サーバーとの通信時に追加のHTTPヘッダーを渡します。複数のそのようなエントリが存在する場合、すべてが追加ヘッダーとして追加されます。システム設定から継承された設定を上書きできるように、空の値は追加ヘッダーを空のリストにリセットします。
- http.cookieFile
-
以前に保存されたcookie行を含むファイルのパス名です。サーバーと一致する場合、Gitのhttpセッションで使用されます。cookieを読み込むファイルのファイル形式は、プレーンなHTTPヘッダーまたはNetscape/Mozillaのcookieファイル形式である必要があります(
curl(1)
を参照)。空の文字列に設定すると、サーバーからの新しいcookieのみを受け入れ、同じ接続内の連続するリクエストでそれらを返送します。http.saveCookiesが設定されていない限り、http.cookieFileで指定されたファイルは入力としてのみ使用されることに注意してください。 - http.saveCookies
-
設定されている場合、リクエスト中に受信したcookieを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証明書のパスワードプロンプトを有効にします。それ以外の場合は、証明書または秘密鍵が暗号化されている場合、OpenSSLがユーザーに(おそらく何度も)プロンプトを表示します。
GIT_SSL_CERT_PASSWORD_PROTECTED
環境変数で上書きできます。 - http.sslCAInfo
-
HTTPS経由でフェッチまたはプッシュする際にピアを検証するための証明書を含むファイル。
GIT_SSL_CAINFO
環境変数で上書きできます。 - http.sslCAPath
-
HTTPS経由でフェッチまたはプッシュする際にピアを検証するための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.sslBackend
を介してschannel
バックエンドが設定されている場合、GitはデフォルトでcURLにそのバンドルを使用しないように指示しますが、http.schannelUseSSLCAInfo
がこの動作をオーバーライドする場合を除きます。 - http.pinnedPubkey
-
httpsサービスの公開鍵。PEMまたはDERでエンコードされた公開鍵ファイルのファイル名、またはsha256//で始まる文字列(公開鍵のbase64でエンコードされたsha256ハッシュが続きます)のいずれかになります。libcurlのCURLOPT_PINNEDPUBLICKEYも参照してください。このオプションが設定されているがcURLでサポートされていない場合、gitはエラーで終了します。
- http.sslTry
-
通常のFTPプロトコルを介して接続するときに、AUTH SSL/TLSと暗号化されたデータ転送を使用しようとします。これは、FTPサーバーがセキュリティ上の理由でそれを要求する場合、またはリモートFTPサーバーがそれをサポートするたびに安全に接続する場合に必要になる場合があります。誤って構成されたサーバーで証明書検証エラーが発生する可能性があるため、デフォルトはfalseです。
- http.maxRequests
-
並行して起動するHTTPリクエストの数。
GIT_HTTP_MAX_REQUESTS
環境変数で上書きできます。デフォルトは5です。 - http.minSessions
-
リクエスト間で保持されるcurlセッションの数(スロット全体でカウント)。http_cleanup()が呼び出されるまで、curl_easy_cleanup()で終了されません。USE_CURL_MULTIが定義されていない場合、この値は1に制限されます。デフォルトは1です。
- http.postBuffer
-
リモートシステムにデータをPOSTする際にスマートHTTPトランスポートで使用されるバッファーの最大サイズ(バイト単位)。このバッファーサイズよりも大きいリクエストでは、HTTP/1.1とTransfer-Encoding: chunkedを使用して、ローカルに巨大なパックファイルを作成することを回避します。デフォルトは1MiBで、ほとんどのリクエストには十分です。
この制限を引き上げるのは、チャンク転送エンコーディングを無効にする場合にのみ有効であることに注意してください。したがって、リモートサーバーまたはプロキシがHTTP/1.0のみをサポートしている場合、またはHTTP標準に準拠していない場合にのみ使用する必要があります。一般的に、これを引き上げることはほとんどのプッシュの問題に対する効果的な解決策ではありませんが、小さいプッシュでもバッファー全体が割り当てられるため、メモリ消費量を大幅に増やす可能性があります。
- http.lowSpeedLimit, http.lowSpeedTime
-
HTTP転送速度(秒あたりのバイト数)がhttp.lowSpeedLimitより長くhttp.lowSpeedTime秒間より低い場合、転送は中止されます。
GIT_HTTP_LOW_SPEED_LIMIT
およびGIT_HTTP_LOW_SPEED_TIME
環境変数で上書きできます。 - http.noEPSV
-
curlによるEPSV ftpコマンドの使用を無効にするブール値。EPSVモードをサポートしていない一部の「貧弱な」ftpサーバーで役立ちます。
GIT_CURL_FTP_NO_EPSV
環境変数で上書きできます。デフォルトはfalseです(curlはEPSVを使用します)。 - http.userAgent
-
HTTPサーバーに提示されるHTTP USER_AGENT文字列。デフォルト値は、git/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://example.com/foo
の設定キーの一致は、https://user@example.com
の設定キーの一致よりも優先されます。すべてのURLは、照合を試みる前に正規化されます(URLに埋め込まれている場合、パスワード部分は照合目的では常に無視されます)。そのため、スペルが異なるだけで等価なURLは適切に一致します。環境変数の設定は、常にすべての照合を上書きします。照合されるURLは、Gitコマンドに直接指定されたものです。つまり、リダイレクトの結果としてアクセスされたURLは、照合には参加しません。
-
- i18n.commitEncoding
-
コミットメッセージが保存される文字エンコーディングです。Git自体は特に気にしませんが、この情報は、例えばメールからコミットをインポートする場合や、gitkグラフィカル履歴ブラウザ(そして将来他の場所や他のポーセリンで)で必要になります。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はパッチをプレーンテキスト、format=fixedのメールとして送信します。デフォルトは
false
です。 - imap.authMethod
-
IMAPサーバーとの認証のための認証方法を指定します。GitがNO_CURLオプションでビルドされている場合、またはcurlのバージョンが7.34.0より古い場合、または
--no-curl
オプションでgit-imap-sendを実行している場合は、サポートされる方法はCRAM-MD5のみです。これが設定されていない場合、git imap-sendは基本的なIMAPプレーンテキストLOGINコマンドを使用します。 - include.path
- includeIf.<condition>.path
-
他の設定ファイルを含めるための特別な変数です。メインのgit-config[1]ドキュメントの「設定ファイル」セクション、特に「インクルード」と「条件付きインクルード」のサブセクションを参照してください。
- index.recordEndOfIndexEntries
-
インデックスファイルに「インデックスエントリの終わり」セクションを含めるかどうかを指定します。これにより、マルチプロセッサマシンでのインデックスのロード時間が短縮されますが、2.20より前のGitバージョンを使用してインデックスを読み取ると、「EOIE拡張機能を無視しています」というメッセージが表示されます。index.threadsが明示的に有効になっている場合はtrue、それ以外の場合はfalseがデフォルトです。
- index.recordOffsetTable
-
インデックスファイルに「インデックスエントリオフセットテーブル」セクションを含めるかどうかを指定します。これにより、マルチプロセッサマシンでのインデックスのロード時間が短縮されますが、2.20より前のGitバージョンを使用してインデックスを読み取ると、「IEOT拡張機能を無視しています」というメッセージが表示されます。index.threadsが明示的に有効になっている場合はtrue、それ以外の場合はfalseがデフォルトです。
- index.sparse
-
有効にすると、スパースディレクトリエントリを使用してインデックスを書き込みます。これは、
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コマンドが高速化されます。チェックサムを保存する代わりに、値がゼロの末尾のバイトセットを書き込み、計算がスキップされたことを示します。index.skipHash
を有効にすると、2.13.0より前のGitクライアントはインデックスの解析を拒否し、2.40.0より前のGitクライアントはgit fsck
実行中にエラーを報告します。
-
init.templateDir
-
テンプレートをコピーするディレクトリを指定します。(git-init[1]の「テンプレートディレクトリ」セクションを参照してください。)
-
init.defaultBranch
-
新しいリポジトリを初期化する場合などに、デフォルトのブランチ名を上書きできます。
-
init.defaultObjectFormat
-
新しいリポジトリのデフォルトのオブジェクト形式を上書きできます。git-init[1]の
--object-format=
を参照してください。コマンドラインオプションとGIT_DEFAULT_HASH
環境変数の両方が、この設定よりも優先されます。 -
init.defaultRefFormat
-
新しいリポジトリのデフォルトの参照ストレージ形式を上書きできます。git-init[1]の
--ref-format=
を参照してください。コマンドラインオプションとGIT_DEFAULT_REF_FORMAT
環境変数の両方が、この設定よりも優先されます。 - instaweb.browser
-
作業リポジトリをgitwebで閲覧するために使用されるプログラムを指定します。git-instaweb[1]を参照してください。
- instaweb.httpd
-
作業リポジトリでgitwebを起動するHTTPデーモンコマンドラインを指定します。git-instaweb[1]を参照してください。
- instaweb.local
-
trueの場合、git-instaweb[1]によって起動されたWebサーバーはローカル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
-
trueに設定すると、ユーザーはインタラクティブコマンドで1文字の入力を1つのキーで(つまり、Enterキーを押さずに)入力できます。現在、これはgit-add[1]、git-checkout[1]、git-restore[1]、git-commit[1]、git-reset[1]、git-stash[1]の
--patch
モードで使用されています。 - interactive.diffFilter
-
インタラクティブコマンド(
git add --patch
など)がカラー化されたdiffを表示する場合、gitはdiffをこの設定変数で定義されたシェルコマンドにパイプします。コマンドは、元のdiffの行との1対1の対応関係を維持する限り、人間が理解しやすいようにdiffをさらにマークアップできます。デフォルトでは無効(フィルタリングなし)です。 - log.abbrevCommit
-
trueの場合、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コマンドによって表示されるコミットのリファレンス名を印刷します。shortが指定されている場合、リファレンス名のプレフィックスrefs/heads/、refs/tags/、refs/remotes/は印刷されません。fullが指定されている場合、完全なリファレンス名(プレフィックスを含む)が印刷されます。autoが指定されている場合、出力が端末の場合、shortが指定されているかのようにリファレンス名が示され、それ以外の場合はリファレンス名は表示されません。これは
git log
の--decorate
オプションと同じです。 - log.initialDecorationSet
-
デフォルトでは、
git log
は特定の既知のリファレンスネームスペースの装飾のみを表示します。allが指定されている場合、すべてのリファレンスを装飾として表示します。 - log.excludeDecoration
-
指定されたパターンをログの装飾から除外します。これは
--decorate-refs-exclude
コマンドラインオプションに似ていますが、configオプションは--decorate-refs
オプションで上書きできます。 - log.diffMerges
-
--diff-merges=on
が指定されている場合に使用されるdiff形式を設定します。git-log[1]の--diff-merges
で詳細を確認してください。デフォルトはseparate
です。 - log.follow
-
true
の場合、単一の<path>が指定されているときに、git log
は--follow
オプションが使用されたかのように動作します。これは--follow
と同じ制限があり、つまり複数のファイルをフォローするために使用できず、非線形履歴ではうまく機能しません。 - log.graphColors
-
git log --graph
で履歴行を描画するために使用できる、カンマで区切られた色のリストです。 - 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の機能アドバタイズメント中にこの機能のサポートをアドバタイズします。"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
と同様ですが、値をリポジトリ内のblobへの参照として考慮します。mailmap.file
とmailmap.blob
の両方が指定されている場合、両方が解析され、mailmap.file
のエントリが優先されます。ベアリポジトリでは、これはHEAD:.mailmap
をデフォルトとします。ベアリポジトリではないリポジトリでは、空をデフォルトとします。 - maintenance.auto
-
このブール型のconfigオプションは、いくつかのコマンドが通常の作業の後で
git maintenance run --auto
を実行するかどうかを制御します。デフォルトはtrueです。 - maintenance.autoDetach
-
多くのGitコマンドは、リポジトリにデータを書き込んだ後に自動メンテナンスをトリガーします。このブール型のconfigオプションは、この自動メンテナンスがフォアグラウンドで行われるか、メンテナンスプロセスがデタッチしてバックグラウンドで実行を継続するかどうかを制御します。
設定されていない場合、
gc.autoDetach
の値がフォールバックとして使用されます。どちらも設定されていない場合はデフォルトでtrueになり、メンテナンスプロセスはデタッチされます。 - maintenance.strategy
-
この文字列型のconfigオプションは、バックグラウンドメンテナンスのために推奨されるいくつかのスケジュールを指定する方法を提供します。これは、
--task=<task>
引数が提供されていない場合に、git maintenance run --schedule=X
コマンド中に実行されるタスクのみに影響します。さらに、maintenance.<task>.schedule
config値が設定されている場合、maintenance.strategy
で提供される値の代わりにその値が使用されます。可能な戦略文字列は-
none
:このデフォルト設定は、どのスケジュールでもタスクが実行されないことを意味します。 -
incremental
:この設定は、データを削除しない小さなメンテナンスアクティビティを実行するために最適化されています。これはgc
タスクをスケジュールしませんが、prefetch
とcommit-graph
タスクを毎時、loose-objects
とincremental-repack
タスクを毎日、pack-refs
タスクを毎週実行します。
-
- maintenance.<task>.enabled
-
このブール型のconfigオプションは、
git maintenance run
に--task
オプションが指定されていない場合に、名前が<task>
であるメンテナンスタスクが実行されるかどうかを制御します。これらのconfig値は、--task
オプションが存在する場合は無視されます。デフォルトでは、maintenance.gc.enabled
のみがtrueです。 - maintenance.<task>.schedule
-
このconfigオプションは、指定された
<task>
がgit maintenance run --schedule=<frequency>
コマンド中に実行されるかどうかを制御します。値は"hourly"、"daily"、または"weekly"のいずれかである必要があります。 - maintenance.commit-graph.auto
-
この整数型のconfigオプションは、
git maintenance run --auto
の一部としてcommit-graph
タスクをどのくらいの頻度で実行するかを制御します。0の場合、commit-graph
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合は、正の値は、コミットグラフファイルにない到達可能なコミット数がmaintenance.commit-graph.auto
の値以上の場合にコマンドを実行することを意味します。デフォルト値は100です。 - maintenance.loose-objects.auto
-
この整数型のconfigオプションは、
git maintenance run --auto
の一部としてloose-objects
タスクをどのくらいの頻度で実行するかを制御します。0の場合、loose-objects
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合は、正の値は、ルーズオブジェクトの数がmaintenance.loose-objects.auto
の値以上の場合にコマンドを実行することを意味します。デフォルト値は100です。 - maintenance.incremental-repack.auto
-
この整数型のconfigオプションは、
git maintenance run --auto
の一部としてincremental-repack
タスクをどのくらいの頻度で実行するかを制御します。0の場合、incremental-repack
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合は、正の値は、マルチパックインデックスにないパックファイルの数がmaintenance.incremental-repack.auto
の値以上の場合にコマンドを実行することを意味します。デフォルト値は10です。 - man.viewer
-
man形式でヘルプを表示するために使用できるプログラムを指定します。git-help[1]を参照してください。
- man.<tool>.cmd
-
指定されたmanビューアを呼び出すコマンドを指定します。指定されたコマンドは、manページを引数としてシェルで評価されます。(git-help[1]を参照してください。)
- man.<tool>.path
-
man形式でヘルプを表示するために使用できる、指定されたツールのパスを上書きします。git-help[1]を参照してください。
- merge.conflictStyle
-
マージ時に競合するハンクがワーキングツリーファイルに書き出されるスタイルを指定します。デフォルトは"merge"で、
<<<<<<<
競合マーカー、一方側による変更、=======
マーカー、もう一方側による変更、そして>>>>>>>
マーカーが表示されます。代替スタイルの"diff3"は、|||||||
マーカーと=======
マーカーの前に元のテキストを追加します。"merge"スタイルは、元のテキストの除外と、2つの側の行のサブセットが一致する場合に競合領域から削除されるため、diff3よりも小さな競合領域を生成する傾向があります。別の代替スタイルである"zdiff3"はdiff3に似ていますが、それらのマッチングラインが競合領域の先頭または末尾の近くに表示される場合、2つの側のマッチングラインを競合領域から削除します。 - merge.defaultToUpstream
-
コミット引数なしでマージが呼び出された場合、それらのリモート追跡ブランチに保存されている最後に観察された値を使用して、現在のブランチに設定されている上流ブランチをマージします。
branch.<current branch>.remote
によって名前付けられたリモートにあるブランチに名前を付けるbranch.<current branch>.merge
の値が参照され、次にremote.<remote>.fetch
を介して対応するリモート追跡ブランチにマッピングされ、これらの追跡ブランチの先端がマージされます。デフォルトはtrueです。 - merge.ff
-
デフォルトでは、Gitは現在のコミットの子孫であるコミットをマージするときに余分なマージコミットを作成しません。代わりに、現在のブランチの先端は高速転送されます。
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
-
統合ブランチの名前と一致するglobをこの複数値の構成変数に追加することにより、これらの統合ブランチへのマージのために計算されたデフォルトのマージメッセージから、「into <branch name>」がタイトルから省略されます。
空の値を持つ要素を使用して、以前の構成エントリから蓄積されたglobのリストをクリアできます。
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]の「チェックイン/チェックアウト属性が異なるブランチのマージ」セクションを参照してください。
- 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
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
tortoisemerge
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
- 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
-
指定されたツールのパスを上書きします。ツールがPATHにない場合に便利です。
- mergetool.<tool>.cmd
-
指定されたマージツールを呼び出すコマンドを指定します。指定されたコマンドはシェルで評価され、以下の変数が使用可能です。 *BASE*はマージするファイルの共通の基底を含む一時ファイルの名前(存在する場合)、*LOCAL*は現在のブランチのファイルの内容を含む一時ファイルの名前、*REMOTE*はマージするブランチからのファイルの内容を含む一時ファイルの名前、*MERGED*はマージツールが成功したマージの結果を書き込むファイルの名前です。
- mergetool.<tool>.hideResolved
-
特定のツールに対してグローバルな
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
-
--auto-merge
が与えられると、meldはすべての非競合部分を自動的にマージし、競合部分を強調表示して、ユーザーの決定を待ちます。mergetool.meld.useAutoMerge
をtrue
に設定すると、Gitは条件なしでmeld
に--auto-merge
オプションを使用します。この値をauto
に設定すると、gitは--auto-merge
がサポートされているかどうかを検出し、利用可能な場合にのみ--auto-merge
を使用します。false
という値は--auto-merge
をまったく使用せず、デフォルト値です。 - mergetool.<vimdiff variant>.layout
-
vimdiffの
<variant>
(vimdiff
、nvimdiff
、gvimdiff
のいずれか)のスプリットウィンドウレイアウトを設定します。--tool=<variant>
を使用して(またはmerge.tool
が<variant>
として設定されている場合は--tool
なしで)git mergetool
を起動すると、Gitはツールのレイアウトを決定するためにmergetool.<variant>.layout
を参照します。バリアント固有の設定が利用できない場合、vimdiff
の設定がフォールバックとして使用されます。それも利用できない場合、4つのウィンドウを持つデフォルトのレイアウトが使用されます。レイアウトの設定については、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
-
デフォルトで
merge.guitool
を使用するにはtrue
に設定し(--gui
引数を指定するのと同じ)、DISPLAY
環境変数の値の有無に応じてmerge.guitool
またはmerge.tool
を選択するにはauto
に設定します。デフォルトはfalse
で、merge.guitool
を使用するには--gui
引数を明示的に指定する必要があります。 - notes.mergeStrategy
-
ノートの競合を解決する際にデフォルトで選択するマージ戦略を指定します。
manual
、ours
、theirs
、union
、cat_sort_uniq
のいずれかでなければなりません。デフォルトはmanual
です。各戦略の詳細については、git-notes[1]の「NOTES MERGE STRATEGIES」セクションを参照してください。この設定は、git-notes[1]に
--strategy
オプションを渡すことで上書きできます。 - notes.<name>.mergeStrategy
-
refs/notes/<name>へのノートのマージを行う際に選択するマージ戦略を指定します。より一般的な"notes.mergeStrategy"を上書きします。利用可能な戦略の詳細については、git-notes[1]の「NOTES MERGE STRATEGIES」セクションを参照してください。
- notes.displayRef
-
core.notesRef
またはGIT_NOTES_REF
によって設定されたデフォルトセットに加えて、どのref(またはglob、または複数回指定されている場合はrefs)からノートを読み込むかを指定します。これは、git logコマンド群を使用してコミットメッセージを表示する際に使用されます。この設定は、
GIT_NOTES_DISPLAY_REF
環境変数で上書きできます。この変数は、コロンで区切られたrefsまたはglobのリストでなければなりません。存在しないrefsに対しては警告が表示されますが、どのrefsにも一致しないglobはサイレントに無視されます。
この設定は、git logコマンド群の
--no-notes
オプション、またはこれらのコマンドで受け入れられる--notes=<ref>
オプションで無効にすることができます。"core.notesRef"の有効値(
GIT_NOTES_REF
によって上書きされる可能性があります)も、表示されるrefsのリストに暗黙的に追加されます。 - notes.rewrite.<command>
-
<command>(現在は
amend
またはrebase
)を使用してコミットを書き換える場合、この変数がfalse
の場合、gitは元のコミットから書き換えられたコミットにノートをコピーしません。デフォルトはtrue
です。「notes.rewriteRef
」も参照してください。この設定は、
GIT_NOTES_REWRITE_REF
環境変数で上書きできます。この変数は、コロンで区切られたrefsまたはglobのリストでなければなりません。 - notes.rewriteMode
-
書き換え中にノートをコピーする場合("notes.rewrite.<command>" オプションを参照)、対象コミットに既にノートが存在する場合の処理を決定します。
overwrite
、concatenate
、cat_sort_uniq
、またはignore
のいずれかでなければなりません。デフォルトはconcatenate
です。この設定は、
GIT_NOTES_REWRITE_MODE
環境変数で上書きできます。 - notes.rewriteRef
-
書き換え中にノートをコピーする場合、コピーするノートの(完全修飾された)参照を指定します。glob を指定することもでき、その場合は、一致するすべての参照のノートがコピーされます。この設定を複数回指定することもできます。
デフォルト値はありません。ノートの書き換えを有効にするには、この変数を設定する必要があります。デフォルトのコミットノートの書き換えを有効にするには、
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 のデフォルト値が使用されます。これも設定されていない場合は、zlib のデフォルトである -1 が使用されます。「速度と圧縮のバランスをとったデフォルト(現在レベル6と同等)」です。
圧縮レベルを変更しても、既存のオブジェクトが自動的に再圧縮されるわけではありません。git-repack[1] に -F オプションを渡すことで、再圧縮を強制できます。
- pack.allowPackReuse
-
true または "single" の場合、到達可能性ビットマップが有効な場合、pack-objects はビットマップパックファイルの一部をそのまま送信しようとします。"multi" の場合、マルチパック到達可能性ビットマップが利用可能な場合、pack-objects はMIDX内のすべてのパックの一部を送信しようとします。
単一のパックビットマップのみが利用可能で、
pack.allowPackReuse
が "multi" に設定されている場合、ビットマップパックファイルの一部のみを再利用します。これにより、フェッチの提供に必要なメモリとCPUの使用率を削減できますが、わずかに大きなパックを送信する可能性があります。デフォルトは true です。 - pack.island
-
デルタアイランドのセットを設定する拡張正規表現です。詳細は、git-pack-objects[1] の「DELTA ISLANDS」を参照してください。
- pack.islandCore
-
最初にパックされるオブジェクトを持つことができるアイランド名を指定します。これにより、1つのパックの先頭に一種の擬似パックが作成され、指定されたアイランドのオブジェクトは、これらのオブジェクトを要求するユーザーに提供されるパックにコピーする速度が向上する可能性があります。実際には、これは指定されたアイランドは、リポジトリで最も一般的にクローンされるものに相当する必要があることを意味します。git-pack-objects[1] の「DELTA ISLANDS」も参照してください。
- pack.deltaCacheSize
-
git-pack-objects[1] でデルタをパックに書き出す前に、デルタをキャッシュするために使用される最大メモリサイズ(バイト単位)です。このキャッシュは、すべてのオブジェクトの最適な一致が見つかった後に最終的なデルタ結果を再計算する必要がないため、オブジェクトの書き込みフェーズの高速化に使用されます。ただし、メモリが不足しているマシンで大きなリポジトリを再パックすると、特にこのキャッシュによってシステムがスワップに追いやられる場合、悪影響を受ける可能性があります。0 の値は制限なしを意味します。1バイトという最小サイズは、このキャッシュを事実上無効にするために使用できます。デフォルトは 256 MiB です。
- pack.deltaCacheLimit
-
git-pack-objects[1] でキャッシュされるデルタの最大サイズです。このキャッシュは、すべてのオブジェクトの最適な一致が見つかった後に最終的なデルタ結果を再計算する必要がないため、オブジェクトの書き込みフェーズの高速化に使用されます。デフォルトは 1000 です。最大値は 65535 です。
- pack.threads
-
最適なデルタ一致を検索するときに生成するスレッド数を指定します。git-pack-objects[1] が pthreads でコンパイルされている必要があります。そうでない場合、このオプションは警告とともに無視されます。これは、マルチプロセッサマシンでのパッキング時間を短縮することを目的としています。ただし、デルタ検索ウィンドウに必要なメモリ量は、スレッド数に応じて乗算されます。0 を指定すると、Git は CPU の数を自動検出してスレッド数を設定します。
- pack.indexVersion
-
デフォルトのパックインデックスバージョンを指定します。有効な値は、1.5.2 より前の Git バージョンで使用されていたレガシパックインデックスを表す 1 と、4 GB より大きいパックに対応した機能と、破損したパックの再パックに対する適切な保護機能を備えた新しいパックインデックスを表す 2 です。バージョン 2 がデフォルトです。対応するパックが 2 GB より大きい場合は、バージョン 2 が強制され、この設定オプションは無視されます。
バージョン 2 の
*.idx
ファイルを理解できない古い Git を使用している場合、*.pack
ファイルと対応する*.idx
ファイルの両方を他方からコピーするネイティブ以外のプロトコル(例:"http")を介してクローンまたはフェッチすると、古いバージョンの Git ではアクセスできないリポジトリが作成される可能性があります。ただし、*.pack
ファイルが 2 GB より小さい場合は、*.pack
ファイルで git-index-pack[1] を使用して*.idx
ファイルを再生成できます。 - pack.packSizeLimit
-
パックの最大サイズです。この設定は、再パック時のファイルへのパッキングにのみ影響します。つまり、git:// プロトコルには影響しません。git-repack[1] の
--max-pack-size
オプションで上書きできます。この制限に達すると、複数のパックファイルが作成されます。このオプションはほとんど役に立たず、ディスク全体のサイズが大きくなり(Git はパック間のデルタを保存しないため)、ランタイムのパフォーマンスが悪くなる可能性があります(複数のパック内でのオブジェクトの検索は単一のパックよりも遅く、到達可能性ビットマップなどの最適化は複数のパックに対応できません)。
より小さなパックファイルを使用して Git を積極的に実行する必要がある場合(例:ファイルシステムで大規模ファイルがサポートされていない場合)、このオプションが役立つ場合があります。ただし、制限されたサイズの媒体(例:リポジトリ全体を保存できないリムーバブルメディア)を介してパックファイルを転送することが目的の場合は、単一の大規模パックファイルを作成し、一般的な複数ボリュームアーカイブツール(例:Unix の
split
)を使用して分割する方が適切です。許容される最小サイズは 1 MiB に制限されています。デフォルトは無制限です。k、m、または g の一般的な単位サフィックスがサポートされています。
- pack.useBitmaps
-
true の場合、git は(利用可能な場合)標準出力にパックする際(例:フェッチのサーバー側)にパックビットマップを使用します。デフォルトは true です。パックビットマップをデバッグしている場合を除き、一般的にこれをオフにする必要はありません。
- pack.useBitmapBoundaryTraversal
-
true の場合、Git はビットマップを使用して到達可能性クエリを計算するための実験的なアルゴリズムを使用します。すべての否定された先端の完全なビットマップを構築してからそれらを OR で結合する代わりに、既存のビットマップを持つ否定された先端を加算的(つまり、存在する場合は結果に OR で結合し、そうでない場合は無視する)と見なし、代わりに境界でビットマップを構築します。
このアルゴリズムを使用する場合、特定の UNINTERESTING コミットに属するツリーを開かないため、Git は結果として多くのオブジェクトを含める可能性があります。この不正確さは、非ビットマップトラバーサルアルゴリズムと一致します。
多くの場合、これは特にクエリの否定側でビットマップの範囲が低い場合、正確なアルゴリズムよりも高速化をもたらす可能性があります。
- pack.useSparse
-
true の場合、--revs オプションが存在する場合、git はgit pack-objectsで--sparseオプションを使用するようにデフォルト設定します。このアルゴリズムは、新しいオブジェクトを導入するパスに表示されるツリーのみをウォークします。これは、小さな変更を送信するためのパックを計算する場合に、パフォーマンスを大幅に向上させる可能性があります。ただし、含まれるコミットに特定の種類の直接的な名前変更が含まれている場合、余分なオブジェクトがパックファイルに追加される可能性があります。デフォルトは
true
です。 - pack.preferBitmapTips
-
どのコミットにビットマップを割り当てるかを選択する場合、この設定の値のいずれかのサフィックスである参照の先端にあるコミットを、「選択ウィンドウ」内の他のコミットよりも優先します。
この設定を
refs/foo
に設定しても、refs/foo/bar
とrefs/foo/baz
の先端にあるコミットが必ず選択されるわけではありません。これは、コミットは可変長のウィンドウのシーケンスからビットマップのために選択されるためです。この設定の値のいずれかのサフィックスである参照の先端にあるコミットがウィンドウ内に表示された場合、そのウィンドウ内の他のコミットよりも優先されます。
- pack.writeBitmaps(非推奨)
-
これは
repack.writeBitmaps
の非推奨の同義語です。 - pack.writeBitmapHashCache
-
true の場合、git はビットマップインデックス(書き込まれている場合)に「ハッシュキャッシュ」セクションを含めます。このキャッシュは、git のデルタヒューリスティックに供給するために使用でき、ビットマップ化されたオブジェクトとビットマップ化されていないオブジェクト間のより良いデルタにつながる可能性があります(例:古いビットマップ化されたパックと最後の gc 以降にプッシュされたオブジェクト間のフェッチを提供する場合)。欠点は、オブジェクトごとに 4 バイトのディスク容量を消費することです。デフォルトは true です。
マルチパック到達可能性ビットマップを書き込む場合、新しい namehashes は計算されません。代わりに、既存のビットマップに格納されている namehashes は、新しいビットマップを書き込む際に適切な場所に置換されます。
- pack.writeBitmapLookupTable
-
trueの場合、Gitはビットマップインデックス(書き込まれる場合)に「ルックアップテーブル」セクションを含めます。このテーブルは、個々のビットマップの読み込みを可能な限り遅らせるために使用されます。これは、比較的大きなビットマップインデックスを持つリポジトリで役立ちます。デフォルトはfalseです。
- pack.readReverseIndex
-
trueの場合、Gitは使用可能な.revファイル(参照:gitformat-pack[5])を読み込みます。falseの場合、リバースインデックスはゼロから生成され、メモリに保存されます。デフォルトはtrueです。
- pack.writeReverseIndex
-
trueの場合、Gitは書き込む新しいパックファイルごとに対応する.revファイル(参照:gitformat-pack[5])を書き込みます。ただし、git-fast-import[1]とバルクチェックインメカニズムを除きます。デフォルトは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"
の実行と同等になります。組み込みフォーマットと同じ名前のエイリアスは、サイレントに無視されます。 - promisor.quiet
-
"true"に設定されている場合、部分クローンに追加のオブジェクトを取得する際に
--quiet
を想定します。 - protocol.allow
-
設定されている場合、明示的にポリシーを持たないすべてのプロトコル(
protocol.<name>.allow
)に対して、ユーザー定義のデフォルトポリシーを提供します。デフォルトでは、設定されていない場合、既知の安全なプロトコル(http、https、git、ssh)はデフォルトポリシーとしてalways
、既知の危険なプロトコル(ext)はデフォルトポリシーとしてnever
、その他すべてのプロトコル(fileを含む)はデフォルトポリシーとしてuser
を持ちます。サポートされているポリシー-
always
- プロトコルは常に使用できます。 -
never
- プロトコルは決して使用できません。 -
user
- プロトコルは、GIT_PROTOCOL_FROM_USER
が設定されていないか、値が1の場合にのみ使用できます。このポリシーは、ユーザーがプロトコルを直接使用できるようにしたいが、ユーザー入力なしにclone/fetch/pushコマンドを実行するコマンド(例:再帰的なサブモジュールの初期化)で使用させたくない場合に使用します。
-
- 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
を含まないことに注意してください。両方設定する場合は、個別に設定する必要があります。 -
外部ヘルパーは、プロトコル名で指定されます(例:
git-remote-hg
ヘルパーを許可するにはhg
を使用します)
-
- protocol.version
-
設定されている場合、クライアントは指定されたプロトコルバージョンを使用してサーバーとの通信を試みます。サーバーがそれをサポートしていない場合、通信はバージョン0に戻ります。設定されていない場合、デフォルトは
2
です。サポートされているバージョン-
0
- 元のワイヤプロトコル。 -
1
- サーバーからの最初のレスポンスにバージョン文字列を追加した元のワイヤプロトコル。 -
2
- ワイヤプロトコルバージョン2、gitprotocol-v2[5]を参照。
-
- pull.ff
-
デフォルトでは、Gitは現在のコミットの子孫であるコミットをマージする際に、追加のマージコミットを作成しません。代わりに、現在のブランチの先端は高速転送されます。
false
に設定されている場合、この変数は、そのような場合にGitに追加のマージコミットを作成するように指示します(コマンドラインから--no-ff
オプションを指定するのと同じです)。only
に設定されている場合、そのような高速転送マージのみが許可されます(コマンドラインから--ff-only
オプションを指定するのと同じです)。この設定は、プル時にmerge.ff
をオーバーライドします。 - pull.rebase
-
trueの場合、「git pull」の実行時に、デフォルトブランチをデフォルトリモートからマージする代わりに、フェッチされたブランチの上にブランチをリベースします。ブランチごとにこれを設定するには、「branch.<name>.rebase」を参照してください。
`merges` (または単に`m`)の場合、`git rebase`に`--rebase-merges`オプションを渡して、ローカルのマージコミットをrebaseに含めます(詳細についてはgit-rebase[1]を参照)。
値が`interactive`(または単に`i`)の場合、rebaseはインタラクティブモードで実行されます。
**注記**:これは危険な操作になる可能性があります。影響を理解していない限り、使用しないでください(詳細についてはgit-rebase[1]を参照)。
- pull.octopus
-
一度に複数のブランチをプルする場合に使用するデフォルトのマージ戦略。
- pull.twohead
-
単一のブランチをプルする場合に使用するデフォルトのマージ戦略。
- push.autoSetupRemote
-
"true"に設定されている場合、現在のブランチに上流追跡が存在しない場合、デフォルトのpushで
--set-upstream
を想定します。このオプションは、push.defaultオプションsimple、upstream、currentで有効になります。デフォルトで新しいブランチをデフォルトのリモートにプッシュしたい場合(push.default=currentの動作と同じ)、そして上流追跡も設定したい場合に便利です。このオプションから最も恩恵を受けるワークフローは、すべてのリモートブランチ名が同じであると想定されるsimpleな中央集権型ワークフローです。 - push.default
-
refspecが指定されていない場合(コマンドライン、設定、またはその他の場所から)に
git push
が実行するアクションを定義します。さまざまな値は特定のワークフローに適しています。たとえば、純粋な中央集権型ワークフロー(つまり、フェッチ元とプッシュ先が等しい)では、upstream
がおそらく望ましいものです。可能な値は次のとおりです。-
nothing
- refspecが指定されていない限り、何もプッシュしません(エラー終了します)。これは、常に明示的にすることで間違いを避けたい人向けです。 -
current
- 現在のブランチをプッシュして、受信側で同じ名前のブランチを更新します。中央集権型ワークフローと非中央集権型ワークフローの両方で機能します。 -
upstream
- 現在のブランチに変更が通常統合されるブランチ(@{upstream}
と呼ばれる)に現在のブランチをプッシュします。このモードは、通常プルするのと同じリポジトリにプッシュする場合(つまり、中央集権型ワークフロー)にのみ意味があります。 -
tracking
- これはupstream
の非推奨の同義語です。 -
simple
- リモートで同じ名前の現在のブランチをプッシュします。中央集権型ワークフロー(通常は
origin
である、プルする同じリポジトリにプッシュする)で作業している場合は、同じ名前の上流ブランチを設定する必要があります。このモードはGit 2.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の値により、すべてのプッシュにGPG署名が付けられます(git-push[1]に
--signed
を渡した場合と同じです)。文字列if-askedにより、サーバーがサポートしている場合にのみプッシュに署名が付けられます(git pushに--signed=if-asked
を渡した場合と同じです)。falseの値は、優先順位の低い設定ファイルからの値をオーバーライドする場合があります。明示的なコマンドラインフラグは、常にこの設定オプションをオーバーライドします。 - 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
-
"push --recurse-submodules"と同じ動作をする"check"、"on-demand"、"only"、または"no"にすることができます。設定されていない場合、submodule.recurseが設定されていない限り、デフォルトでnoが使用されます(その場合、trueの値はon-demandを意味します)。
- push.useForceIfIncludes
-
"true"に設定されている場合、コマンドラインでgit-push[1]にオプションとして
--force-if-includes
を指定するのと同じです。プッシュ時に--no-force-if-includes
を追加すると、この設定がオーバーライドされます。 - push.negotiate
-
"true"に設定されている場合、クライアントとサーバーが共通のコミットを見つけるために試行するネゴシエーションラウンドにより、送信されるパックファイルのサイズを削減しようとします。"false"の場合、Gitはサーバーのrefアドバタイズメントのみに依存して共通のコミットを見つけます。
- push.useBitmaps
-
pack.useBitmaps
が"true"であっても、"git push"でのビットマップの使用を無効にし、他のgit操作がビットマップを使用するのを妨げません。デフォルトはtrueです。 - rebase.backend
-
リベースに使用するデフォルトのバックエンド。可能な選択肢はapplyまたはmergeです。将来、マージバックエンドがapplyバックエンドの残りの機能をすべて獲得した場合、この設定は使用されなくなる可能性があります。
- rebase.stat
-
前回のリベース以降に上流で変更された内容のdiffstatを表示するかどうか。デフォルトではfalseです。
- rebase.autoSquash
-
trueに設定されている場合、インタラクティブモードでgit-rebase[1]の
--autosquash
オプションをデフォルトで有効にします。これは--no-autosquash
オプションでオーバーライドできます。 - rebase.autoStash
-
trueに設定すると、操作開始前に一時的なstashエントリを自動的に作成し、操作終了後に適用します。これにより、ダーティなワークツリーでrebaseを実行できます。ただし、注意して使用してください。rebaseが成功した後に行われる最終的なstashの適用により、複雑な競合が発生する可能性があります。このオプションは、git-rebase[1]の
--no-autostash
および--autostash
オプションで上書きできます。デフォルトはfalseです。 - rebase.updateRefs
-
trueに設定すると、デフォルトで
--update-refs
オプションが有効になります。 - rebase.missingCommitsCheck
-
"warn"に設定されている場合、一部のコミットが削除されている場合(例:行が削除された場合)、git rebase -iは警告を表示しますが、rebaseは続行されます。"error"に設定されている場合、上記の警告を表示し、rebaseを停止します。その後、git rebase --edit-todoを使用してエラーを修正できます。"ignore"に設定されている場合、チェックは実行されません。警告やエラーなしでコミットを削除するには、todoリストで
drop
コマンドを使用します。デフォルトは"ignore"です。 - rebase.instructionFormat
-
git-log[1]で指定されているような、インタラクティブなrebase中の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
設定が上書きされます。 - rebase.maxLabelLength
-
コミットの件名からラベル名を作成する場合、この長さまで名前を切り詰めます。デフォルトでは、名前は
NAME_MAX
よりも少し短い長さに切り詰められます(対応するルースリファレンスのために.lock
ファイルなどを記述できるようにするため)。 - receive.advertiseAtomic
-
デフォルトでは、git-receive-packはクライアントにアトミックプッシュ機能をアドバタイズします。この機能をアドバタイズしたくない場合は、この変数をfalseに設定します。
- receive.advertisePushOptions
-
trueに設定すると、git-receive-packはクライアントにプッシュオプション機能をアドバタイズします。デフォルトはfalseです。
- receive.autogc
-
デフォルトでは、git-receive-packはgit-pushからのデータを受信してrefsを更新した後、「git maintenance run --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>
のように動作しますが、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.keepAlive
秒間データを送信しない場合、短いキープアライブパケットを送信します。デフォルトは5秒です。キープアライブを完全に無効にするには0に設定します。 - receive.unpackLimit
-
プッシュで受信したオブジェクト数がこの制限を下回っている場合、オブジェクトはルーズオブジェクトファイルに展開されます。ただし、受信したオブジェクト数がこの制限に達するか超えた場合、不足しているデルタベースを追加した後で、受信したパックはパックとして保存されます。プッシュからのパックを保存すると、特に遅いファイルシステムでは、プッシュ操作をより速く完了できます。設定されていない場合、代わりに
transfer.unpackLimit
の値が使用されます。 - receive.maxInputSize
-
受信パックストリームのサイズがこの制限を超えている場合、git-receive-packはパックファイルを受け入れる代わりにエラーになります。設定されていない場合、または0に設定されている場合、サイズは無制限です。
- receive.denyDeletes
-
trueに設定すると、git-receive-packはrefを削除する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内で開発する場合にも便利です。
デフォルトでは"updateInstead"は、作業ツリーまたはインデックスにHEADとの違いがある場合、プッシュを拒否しますが、
push-to-checkout
フックを使用してこれをカスタマイズできます。githooks[5]を参照してください。 - receive.denyNonFastForwards
-
trueに設定されている場合、git-receive-packはfast-forwardではないref更新を拒否します。プッシュが強制された場合でも、プッシュによるそのような更新を防ぐために使用します。この設定変数は、共有リポジトリを初期化するときに設定されます。
- receive.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、receive-pack
のみに適用されます(したがって、フェッチではなくプッシュに影響します)。git push
による非表示のrefの更新または削除の試みは拒否されます。 - receive.procReceiveRefs
-
これは、
receive-pack
のコマンドと一致する参照プレフィックスを定義する複数値変数です。プレフィックスと一致するコマンドは、内部の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-receive-packはgit-pushからのデータを受信してrefsを更新した後、git-update-server-infoを実行します。
- receive.shallowUpdate
-
trueに設定されている場合、新しいrefsに新しいshallowルートが必要な場合、.git/shallowを更新できます。そうでない場合、これらのrefsは拒否されます。
- reftable.blockSize
-
reftableバックエンドがブロックを書き込む際に使用するバイト単位のサイズ。ブロックサイズはライターによって決定され、2のべき乗である必要はありません。ブロックサイズは、リポジトリで使用される最長の参照名またはログエントリよりも大きくなければなりません。参照はブロックをまたがることはできないためです。
仮想メモリシステムまたはファイルシステムに適した2のべき乗(4kBまたは8kBなど)をお勧めします。サイズが大きい(64kB)ほど圧縮率が向上する可能性がありますが、アクセス時のリーダーにかかるコストが増加する可能性があります。
最大ブロックサイズは
16777215
バイト(15.99 MiB)です。デフォルト値は4096
バイト(4kB)です。0
の値はデフォルト値を使用します。 - reftable.restartInterval
-
再開ポイントを作成する間隔です。reftable バックエンドは、ファイル作成時に再開ポイントを決定します。ブロックサイズが小さい場合(4k または 8k)は 16 ごとが、ブロックサイズが大きい場合(64k)は 64 ごとがより適している場合があります。
再開ポイントの頻度を増やすと、プレフィックス圧縮が減少し、再開テーブルによって消費されるスペースが増加し、その両方によってファイルサイズが増加します。
再開ポイントの頻度を減らすと、プレフィックス圧縮がより効果的になり、全体的なファイルサイズが減少しますが、バイナリ検索ステップ後により多くのレコードを処理する読者に対するペナルティが増加します。
ブロックあたり最大
65535
個の再開ポイントがサポートされています。デフォルト値は、16 レコードごとに再開ポイントを作成することです。
0
の値はデフォルト値を使用します。 - reftable.indexObjects
-
reftable バックエンドがオブジェクトブロックを書き込むかどうかを指定します。オブジェクトブロックは、オブジェクト ID とそれを指す参照の逆マッピングです。
デフォルト値は
true
です。 - reftable.geometricFactor
-
reftable バックエンドがスタックに新しいテーブルを追加するたびに、自動圧縮を実行して、テーブルが少数のみに保たれるようにします。バックエンドは、各テーブルのサイズに関してテーブルが幾何級数列を形成するようにすることでこれを実行します。
デフォルトでは、幾何級数列は係数 2 を使用します。つまり、任意のテーブルに対して、次の大きいテーブルは少なくとも 2 倍の大きさでなければなりません。最大係数は 256 がサポートされています。
- reftable.lockTimeout
-
reftable バックエンドがスタックに新しいテーブルを追加するたびに、更新する前に中央の "tables.list" ファイルをロックする必要があります。この設定は、別のプロセスが既にロックを取得している場合に、プロセスがロックの取得を待機する時間を制御します。値 0 はまったく再試行しないことを意味し、-1 は無期限に再試行することを意味します。デフォルトは 100(つまり、100 ミリ秒間再試行)です。
- remote.pushDefault
-
デフォルトでプッシュするリモートです。すべてのブランチについて
branch.<name>.remote
をオーバーライドし、特定のブランチについてはbranch.<name>.pushRemote
によってオーバーライドされます。 - remote.<name>.url
-
リモートリポジトリの URL です。git-fetch[1]またはgit-push[1]を参照してください。設定されたリモートには複数の URL を持つことができます。この場合、最初の URL がフェッチに使用され、すべてがプッシュに使用されます(
remote.<name>.pushurl
が定義されていないと仮定)。このキーを空文字列に設定すると、URL のリストがクリアされ、以前の設定をオーバーライドできます。 - remote.<name>.pushurl
-
リモートリポジトリのプッシュ URL です。git-push[1]を参照してください。設定されたリモートに
pushurl
オプションが存在する場合は、remote.<name>.url
の代わりにプッシュに使用されます。設定されたリモートには複数のプッシュ URL を持つことができます。この場合、プッシュはそれらのすべてに送信されます。このキーを空文字列に設定すると、URL のリストがクリアされ、以前の設定をオーバーライドできます。 - 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
-
remote.<name>.skipFetchAll
の非推奨の同義語です(両方が異なる値で設定ファイルに設定されている場合、最後の出現値が使用されます)。 - remote.<name>.skipFetchAll
-
true の場合、git-fetch[1]、git-remote[1]の
update
サブコマンドを使用して更新する場合、このリモートはスキップされ、git maintenance
のプリフェッチタスクによって無視されます。 - 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 に設定されている場合、
remote.<name>.prune
、fetch.prune
、または--prune
によって一般的にプルーニングが有効になっている場合、このリモートからのフェッチは、リモートに存在しなくなったローカルタグも削除します。fetch.pruneTags
設定(存在する場合)をオーバーライドします。remote.<name>.prune
とgit-fetch[1]のPRUNINGセクションも参照してください。 - remote.<name>.promisor
-
true に設定されている場合、このリモートはプロミサーオブジェクトのフェッチに使用されます。
- remote.<name>.partialclonefilter
-
このプロミサーリモートからフェッチするときに適用されるフィルターです。この値を変更またはクリアしても、新しいコミットのフェッチにのみ影響します。ローカルオブジェクトデータベースに既に存在するコミットに関連付けられたオブジェクトをフェッチするには、git-fetch[1]の
--refetch
オプションを使用します。 - remotes.<group>
-
"git remote update <group>"によってフェッチされるリモートのリストです。git-remote[1]を参照してください。
- repack.useDeltaBaseOffset
-
デフォルトで、git-repack[1]はデルタベースオフセットを使用するパックを作成します。バージョン 1.4.4 より前の Git と直接または http などのダンププロトコルを介してリポジトリを共有する必要がある場合は、このオプションを "false" に設定して repack する必要があります。ネイティブプロトコルを介した古い 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
が実行された場合)。このインデックスにより、クローンとフェッチのために作成された後続のパックの「オブジェクトの計数」フェーズを高速化できますが、ディスク容量と初期 repack にかかる時間が増加します。複数の packfile が作成される場合は、効果がありません。ベアリポジトリでは true、それ以外の場合は false がデフォルトです。 - repack.updateServerInfo
-
false に設定されている場合、git-repack[1]はgit-update-server-info[1]を実行しません。デフォルトは true です。true の場合、git-repack[1]の
-n
オプションでオーバーライドできます。 - repack.cruftWindow
- repack.cruftWindowMemory
- repack.cruftDepth
- repack.cruftThreads
-
クラフトパックを生成する際に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 が動作するベアリポジトリを指定します。現在サポートされている値は次のとおりです。
-
all
:Git はすべてのベアリポジトリで動作します。これがデフォルトです。 -
explicit
:Git は、最上位の--git-dir
コマンドラインオプションまたはGIT_DIR
環境変数(git[1]を参照)を介して指定されたベアリポジトリでのみ動作します。ワークフローでベアリポジトリを使用しない場合は、グローバル設定で
safe.bareRepository
をexplicit
に設定すると便利です。これにより、ベアリポジトリを含むリポジトリをクローンし、そのディレクトリ内で Git コマンドを実行する攻撃から保護されます。この設定は、保護された設定(SCOPESを参照)でのみ尊重されます。これにより、信頼できないリポジトリがこの値を改ざんすることを防ぎます。
-
- safe.directory
-
これらの設定エントリは、現在のユーザー以外のユーザーが所有していても安全と見なされる Git で追跡されるディレクトリを指定します。デフォルトでは、Git は他のユーザーが所有するリポジトリの Git 設定を解析することさえ拒否し、そのフックを実行することも拒否します。この設定を使用すると、ユーザーは例外を指定できます(例:意図的に共有されるリポジトリの場合(git-init[1]の
--shared
オプションを参照))。これは複数値の設定です。つまり、
git config --add
を介して複数のディレクトリを追加できます。安全なディレクトリのリストをリセットするには(例:システム設定で指定されているそのようなディレクトリをオーバーライドするには)、空の値を持つsafe.directory
エントリを追加します。この設定は、保護された設定(SCOPESを参照)でのみ尊重されます。これにより、信頼できないリポジトリがこの値を改ざんすることを防ぎます。
この設定の値は補間されます。つまり、
~/<path>
はホームディレクトリに対する相対パスに展開され、%(prefix)/<path>
は Git の(ランタイム)プレフィックスに対する相対パスに展開されます。このセキュリティチェックを完全に無効にするには、
safe.directory
を文字列*
に設定します。これにより、すべてのリポジトリが、そのディレクトリがsafe.directory
リストに記載されているかのように扱われます。システム設定でsafe.directory=*
が設定されていて、この保護を再び有効にしたい場合は、安全とみなすリポジトリをリストする前に、空の値でリストを初期化してください。ディレクトリに/*
を追加すると、指定されたディレクトリ配下のすべてのリポジトリへのアクセスが許可されます。説明したように、Gitはデフォルトでは、Gitを実行しているユーザー(つまり、Gitを実行しているユーザー自身)が所有するリポジトリへのアクセスのみを許可します。ただし、Windows以外のプラットフォームでsudoが提供されている環境で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
-
設定された識別子です。指定された場合、sendemail.<identity>セクションの値が、sendemailセクションの値よりも優先されます。デフォルトの識別子は
sendemail.identity
の値です。 - sendemail.smtpEncryption
-
git-send-email[1]の説明を参照してください。この設定は、identityメカニズムの影響を受けません。
- sendemail.smtpSSLCertPath
-
ca-certificatesへのパス(ディレクトリまたは単一ファイル)。証明書検証を無効にするには、空の文字列に設定します。
- sendemail.<identity>.*
-
以下にあるsendemail.*パラメータの識別子固有のバージョンです。コマンドラインまたは
sendemail.identity
でこの識別子が選択されている場合、それらのパラメータよりも優先されます。 - sendemail.multiEdit
-
trueの場合(デフォルト)、編集する必要があるファイル(
--annotate
を使用する際のpatch、--compose
を使用する際のsummary)を編集するためのエディターインスタンスが1つ生成されます。falseの場合、ファイルは順番に編集され、毎回新しいエディターが生成されます。 - sendemail.confirm
-
送信前に確認するかどうかをデフォルトで設定します。always、never、cc、compose、またはautoのいずれかである必要があります。git-send-email[1]のドキュメントの
--confirm
で、これらの値の意味を参照してください。 - sendemail.mailmap
-
trueの場合、git-send-email[1]は
--mailmap
を想定し、それ以外の場合は--no-mailmap
を想定します。デフォルトはfalseです。 - sendemail.mailmap.file
-
git-send-email[1]専用の拡張メールマップファイルの場所です。デフォルトのmailmapと
mailmap.file
が最初にロードされます。そのため、このファイルのエントリは、デフォルトのmailmapの場所のエントリよりも優先されます。gitmailmap[5]を参照してください。 - sendemail.mailmap.blob
-
sendemail.mailmap.file
と似ていますが、リポジトリ内のblobへの参照として値を考慮します。sendemail.mailmap.file
のエントリは、ここにあるエントリよりも優先されます。gitmailmap[5]を参照してください。 - sendemail.aliasesFile
-
長いメールアドレスを入力するのを避けるために、1つ以上のメールエイリアスファイルにこれをポイントします。
sendemail.aliasFileType
も指定する必要があります。 - sendemail.aliasFileType
-
sendemail.aliasesFileで指定されたファイルの形式。mutt、mailrc、pine、elm、gnus、またはsendmailのいずれかである必要があります。
各形式のエイリアスファイルの具体的な記述は、同じ名前のメールプログラムのドキュメントにあります。標準形式からの違いと制限事項については、以下に説明します。
- 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
-
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は、インデックスと作業ツリーのファイルリストの同期が解除された状態から自動的に回復できます。作業ツリーファイルの存在とスパースパターンの一貫性を維持する責任をGitから解放する何らかの外部要因がある設定の場合、これを
true
に設定します。たとえば、アクセスパターンに基づいて作業ツリーとスパースパターンを最新の状態に維持するための堅牢なメカニズムを備えたGit対応の仮想ファイルシステムを使用している場合などです。この設定に関係なく、スパースチェックアウトが有効でない限り、Gitは存在するにもかかわらずスキップされたファイルをチェックしないため、
core.sparseCheckout
がtrue
でない限り、この設定オプションは効果がありません。 - splitIndex.maxPercentChange
-
分割インデックス機能を使用する場合、これは、新しい共有インデックスが書き込まれる前に、分割インデックスと共有インデックスの両方の合計エントリ数と比較して、分割インデックスに含まれることができるエントリの割合を指定します。値は0〜100の間である必要があります。値が0の場合、常に新しい共有インデックスが書き込まれます。値が100の場合、新しい共有インデックスは決して書き込まれません。デフォルト値は20なので、分割インデックスのエントリ数が合計エントリ数の20%を超える場合、新しい共有インデックスが書き込まれます。git-update-index[1]を参照してください。
-
分割インデックス機能を使用する場合、この変数が指定する時間以降変更されていない共有インデックスファイルは、新しい共有インデックスファイルが作成されるときに削除されます。"now"という値はすべてエントリをすぐに期限切れにし、"never"は期限切れを完全に抑制します。デフォルト値は"2.weeks.ago"です。共有インデックスファイルは(期限切れの目的で)、新しい分割インデックスファイルがそのファイルに基づいて作成された場合、またはそのファイルから読み取られた場合に、変更されたと見なされます。git-update-index[1]を参照してください。
- ssh.variant
-
デフォルトでは、Git は設定された SSH コマンドの basename に基づいて使用するコマンドライン引数を決定します (環境変数 `GIT_SSH` または `GIT_SSH_COMMAND`、あるいは config 設定 `core.sshCommand` を使用して設定)。basename が認識されない場合、Git はまず設定された SSH コマンドを `-G` (設定を出力) オプション付きで呼び出すことで OpenSSH オプションのサポートを検出しようとします。そして、成功した場合は OpenSSH オプションを使用し、失敗した場合はホストとリモートコマンド以外のオプションを使用しません。
config 変数 `ssh.variant` を設定して、この検出を上書きできます。有効な値は `ssh` (OpenSSH オプションを使用する)、`plink`、`putty`、`tortoiseplink`、`simple` (ホストとリモートコマンド以外のオプションを使用しない) です。デフォルトの自動検出は、値 `auto` を使用して明示的に要求できます。それ以外の値は `ssh` として扱われます。この設定は、環境変数 `GIT_SSH_VARIANT` でも上書きできます。
各バリアントで使用される現在のコマンドラインパラメータは以下のとおりです。
-
ssh
- [-p port] [-4] [-6] [-o option] [username@]host command -
simple
- [username@]host command -
plink
またはputty
- [-P port] [-4] [-6] [username@]host command -
tortoiseplink
- [-P port] [-4] [-6] -batch [username@]host command
simple
バリアントを除き、コマンドラインパラメータは、git に新しい機能が追加されるにつれて変更される可能性があります。 -
- stash.showIncludeUntracked
-
これを true に設定すると、`git stash show` コマンドは stash エントリの untracked ファイルを表示します。デフォルトは 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* コマンドの説明を参照してください。
- status.relativePaths
-
デフォルトでは、git-status[1] は現在のディレクトリを基準とした相対パスを表示します。この変数を `false` に設定すると、リポジトリルートを基準とした相対パスが表示されます (これは Git v1.5.4 より前のデフォルトでした)。
- status.short
-
git-status[1] でデフォルトで --short を有効にするには true に設定します。 --no-short オプションは、この変数よりも優先されます。
- status.branch
-
git-status[1] でデフォルトで --branch を有効にするには true に設定します。 --no-branch オプションは、この変数よりも優先されます。
- status.aheadBehind
-
非ポーセレン形式のステータス出力において、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-status[1] と git-commit[1] で Git が名前変更を検出する方法です。"false" に設定すると、名前変更検出は無効になります。"true" に設定すると、基本的な名前変更検出が有効になります。"copies" または "copy" に設定すると、コピーも検出されます。デフォルトは 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* です。ブール値 `true` の通常のスペルはすべて `normal` として、`false` は `no` として扱われます。この変数は、git-status[1] と git-commit[1] の -u|--untracked-files オプションで上書きできます。
-
- status.submoduleSummary
-
デフォルトは false です。これを 0 以外の数値または true ( -1 または無制限の数と同一) に設定すると、サブモジュールのサマリーが有効になり、変更されたサブモジュールのコミットのサマリーが表示されます (git-submodule[1] の --summary-limit オプションを参照)。`diff.ignoreSubmodules` が *all* に設定されている場合、または `submodule.<name>.ignore=all` のサブモジュールに対しては、サマリー出力コマンドがすべて抑制されることに注意してください。この規則の唯一の例外は、ステータスとコミットがステージングされたサブモジュールの変更を表示することです。無視されたサブモジュールのサマリーも表示するには、 --ignore-submodules=dirty コマンドラインオプションまたは *git submodule summary* コマンドを使用できます。これは同様の出力を表示しますが、これらの設定を尊重しません。
- submodule.<name>.url
-
サブモジュールの URL です。この変数は、`.gitmodules` ファイルから *git submodule init* を介して 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
-
このオプションを使用して、このサブモジュールの再帰的なフェッチを制御できます。"git fetch" と "git pull" に対する --[no-]recurse-submodules コマンドラインオプションを使用して上書きできます。この設定は gitmodules[5] ファイルの設定を上書きします。
- submodule.<name>.ignore
-
"git status" と diff 系のコマンドがサブモジュールを変更済みとして表示する状況を定義します。"all" に設定すると、変更済みとして扱われることはありません (ただし、ステージングされた場合はステータスとコミットの出力に表示されます)。"dirty" はサブモジュールの作業ツリーへのすべての変更を無視し、サブモジュールの HEAD とスーパープロジェクトに記録されたコミットの違いのみを考慮します。"untracked" はさらに、作業ツリーに変更された追跡済みファイルを持つサブモジュールを表示します。"none" (このオプションが設定されていない場合のデフォルト) は、作業ツリーに変更された追跡されていないファイルを持つサブモジュールも変更済みとして表示します。この設定は、このサブモジュールに対して .gitmodules で行われた設定を上書きし、両方の設定は --ignore-submodules オプションを使用してコマンドラインで上書きできます。*git submodule* コマンドはこの設定の影響を受けません。
- submodule.<name>.active
-
サブモジュールが git コマンドにとって重要かどうかを示すブール値です。この config オプションは、submodule.active config オプションよりも優先されます。gitsubmodules[7] の詳細を参照してください。
- submodule.active
-
サブモジュールのパスと照合して、サブモジュールが git コマンドにとって重要かどうかを判断するために使用されるパススペックを含む繰り返しフィールドです。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` を使用する場合にブランチサポートを有効にするブール値です。これを有効にすると、特定のコマンドで `--recurse-submodules` を受け入れることができ、既に `--recurse-submodules` を受け入れる特定のコマンドではブランチが考慮されるようになります。デフォルトは false です。
- submodule.fetchJobs
-
同時にフェッチ/クローンされるサブモジュールの数を指定します。正の整数は、最大その数のサブモジュールを並列にフェッチすることを許可します。値 0 は、ある程度の妥当なデフォルトを与えます。設定されていない場合、デフォルトは 1 です。
- submodule.alternateLocation
-
サブモジュールがクローンされる際に、サブモジュールが代替を取得する方法を指定します。可能な値は
no
、superproject
です。デフォルトではno
が想定され、参照は追加されません。値がsuperproject
に設定されている場合、クローンされるサブモジュールは、スーパープロジェクトの代替を基準としたその代替の場所を計算します。 - submodule.alternateErrorStrategy
-
submodule.alternateLocation
を介して計算されたサブモジュールの代替に関するエラーの処理方法を指定します。可能な値はignore
、info
、die
です。デフォルトはdie
です。ignore
またはinfo
に設定されている場合、計算された代替にエラーがある場合、代替が指定されていないかのようにクローンが続行されます。 - tag.forceSignAnnotated
-
作成されるアノテーション付きタグをGPGで署名するかどうかを指定するブール値です。コマンドラインで
--annotate
が指定されている場合、このオプションよりも優先されます。 - tag.sort
-
この変数は、git-tag[1]によって表示される際のタグのソート順序を制御します。"--sort=<value>"オプションが提供されていない場合、この変数の値がデフォルトとして使用されます。
- tag.gpgSign
-
すべてのタグをGPGで署名するかどうかを指定するブール値です。自動化されたスクリプトの実行時にこのオプションを使用すると、多数のタグが署名される可能性があります。そのため、gpgパスフレーズを何度も入力するのを避けるために、エージェントを使用するのが便利です。このオプションは、"-u <keyid>"または"--local-user=<keyid>"オプションによって有効になっているタグ署名の動作には影響しません。
- tar.umask
-
この変数は、tarアーカイブエントリのパーミッションビットを制限するために使用できます。デフォルトは0002で、ワールドライトビットをオフにします。特別な値 "user" は、代わりにアーカイブするユーザーのumaskが使用されることを示します。umask(2)とgit-archive[1]を参照してください。
Trace2設定は、システムとグローバル設定ファイルからのみ読み取られます。リポジトリローカルとワークツリー設定ファイル、および-c
コマンドライン引数は考慮されません。
- trace2.normalTarget
-
この変数は、通常のターゲットの宛先を制御します。
GIT_TRACE2
環境変数によって上書きされる可能性があります。次の表に可能な値を示します。 - trace2.perfTarget
-
この変数は、パフォーマンスターゲットの宛先を制御します。
GIT_TRACE2_PERF
環境変数によって上書きされる可能性があります。次の表に可能な値を示します。 - trace2.eventTarget
-
この変数は、イベントターゲットの宛先を制御します。
GIT_TRACE2_EVENT
環境変数によって上書きされる可能性があります。次の表に可能な値を示します。-
0
またはfalse
- ターゲットを無効にします。 -
1
またはtrue
-STDERR
に書き込みます。 -
[2-9]
- すでに開いているファイルディスクリプタに書き込みます。 -
<absolute-pathname>
- ファイルに追記モードで書き込みます。ターゲットが既に存在し、ディレクトリである場合、トレースは指定されたディレクトリの下にあるファイル(プロセスごとに1つ)に書き込まれます。 -
af_unix:[<socket-type>:]<absolute-pathname>
- Unixドメインソケットに書き込みます(サポートしているプラットフォームの場合)。ソケットタイプはstream
またはdgram
のいずれかです。省略した場合、Gitは両方を試みます。
-
- trace2.normalBrief
-
ブール値。trueの場合、
time
、filename
、line
フィールドは通常の出力から省略されます。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
-
整数。イベント出力におけるネストされた領域の深さを指定します。この値よりも深い領域は省略されます。
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
-
整数。トレースファイルをターゲットディレクトリに書き込む場合、それを行うとこのファイル数を超える場合、追加のトレースを書き込みません。代わりに、このディレクトリへのさらなるトレースをブロックするセンティネルファイルを書き込みます。デフォルトは0で、このチェックは無効になります。
- transfer.credentialsInUrl
-
設定されたURLには、
<protocol>://<user>:<password>@<domain>/<path>
形式のプレーンテキストの資格情報が含まれている可能性があります。git-credential[1]の使用を優先して、そのような設定の使用について警告したり禁止したりする場合があります。これはgit-clone[1]、git-fetch[1]、git-push[1]、および設定されたURLのその他の直接的な使用で利用されます。これは現在、
remote.<name>.url
設定の資格情報の検出に限定されていることに注意してください。remote.<name>.pushurl
設定の資格情報は検出しません。不注意による資格情報の漏洩を防ぐために、これを有効にしたい場合があります。例えば、
-
Gitを実行しているOSまたはシステムでは、ユーザー名とパスワードが保存されている設定ファイルのパーミッションを設定する方法がないか、許可されていない可能性があります。
-
たとえ可能であっても、そのようなデータを「保存状態」で保存すると、他の方法で危険にさらされる可能性があります。例えば、バックアッププロセスがデータを別のシステムにコピーする可能性があります。
-
Gitプログラムは、コマンドラインで引数として完全なURLを互いに渡すため、資格情報は、他のユーザーの完全なプロセスリストを見ることができるシステム上の他の特権のないユーザーに公開されます。Linuxでは、procfs(5)に記載されている"hidepid"設定により、この動作を設定できます。
このような懸念事項が適用されない場合は、Gitの設定ファイルに機密データを保存することによる資格情報の漏洩について心配する必要はないでしょう。これを実際に使用したい場合は、
transfer.credentialsInUrl
を次のいずれかの値に設定します。 -
allow
(デフォルト):Gitは警告なしにアクティビティを続行します。 -
warn
:プレーンテキストの資格情報を含むURLを解析すると、Gitは警告メッセージをstderr
に書き込みます。 -
die
:プレーンテキストの資格情報を含むURLを解析すると、Gitはエラーメッセージを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」を参照してください。フェッチ側では、不正なオブジェクトはリポジトリ内で参照されないままになります。
fetch.fsckObjects
実装の非隔離の性質により、receive.fsckObjects
のようにオブジェクトストアをクリーンな状態に保つことはできません。オブジェクトはアンパックされるとオブジェクトストアに書き込まれるため、悪意のあるオブジェクトが「フェッチ」が失敗したにもかかわらず導入され、後続の「フェッチ」が成功する可能性があります。これは、既にオブジェクトストアに書き込まれているオブジェクトではなく、新しい着信オブジェクトのみがチェックされるためです。その動作の違いは依存すべきではありません。将来的には、そのようなオブジェクトも「フェッチ」のために隔離される可能性があります。
現時点では、偏執狂的なユーザーは、「push」と同じ保護を希望する場合、隔離環境をエミュレートする方法を見つける必要があります。たとえば、内部ミラーの場合、ミラーリングを2つのステップで行い、1つは信頼できないオブジェクトをフェッチし、次に別の内部リポジトリに2番目の「push」(隔離を使用します)を行い、内部クライアントがこのプッシュされたリポジトリを使用するか、内部フェッチを差し止め、完全な「fsck」を実行した後(そしてそれ以降に新しいフェッチが発生していない場合)のみ許可する必要があります。
- transfer.hideRefs
-
receive-pack
とupload-pack
は、初期広告からどの参照を省略するかを決定するために、この変数の値を使用します。複数のプレフィックス文字列を指定するには、複数の定義を使用します。この変数の値にリストされている階層の下にある参照は除外され、git push
またはgit fetch
に応答する際に非表示になります。この設定のプログラム固有のバージョンについては、receive.hideRefs
とuploadpack.hideRefs
を参照してください。参照名の前に
!
を付けることで、エントリを否定し、以前のエントリで非表示としてマークされていた場合でも、明示的に表示することもできます。複数のhideRefs
の値がある場合、後のエントリは前のエントリを上書きします(より具体的な設定ファイルのエントリは、あまり具体的な設定ファイルのエントリを上書きします)。名前空間が使用されている場合、参照が
transfer.hiderefs
パターンと照合される前に、名前空間プレフィックスが各参照から削除されます。削除する前に参照を照合するには、参照名の前に^
を追加します。!
と^
を組み合わせる場合、!
を最初に指定する必要があります。たとえば、
transfer.hideRefs
にrefs/heads/master
が指定され、現在の名前空間がfoo
の場合、refs/namespaces/foo/refs/heads/master
は広告から省略されます。uploadpack.allowRefInWant
が設定されている場合、upload-pack
はプロトコルv2のfetch
コマンドのwant-ref refs/heads/master
を、refs/namespaces/foo/refs/heads/master
が存在しないかのように扱います。一方、receive-pack
は、その名前(いわゆる ".have" 行)を言及せずに、参照が指しているオブジェクトIDを依然として広告します。参照を非表示にしても、クライアントは`gitnamespaces[7]`マニュアルページの「セキュリティ」セクションで説明されている手法を使用して、ターゲットオブジェクトを盗むことができる場合があります。機密データは別のリポジトリに保管することをお勧めします。
- transfer.unpackLimit
-
fetch.unpackLimit
またはreceive.unpackLimit
が設定されていない場合、代わりにこの変数の値が使用されます。デフォルト値は100です。 - transfer.advertiseSID
-
ブール値。trueの場合、クライアントプロセスとサーバープロセスは、リモートの対応物に独自のセッションIDをアドバタイズします。デフォルトはfalseです。
- transfer.bundleURI
-
true
の場合、ローカルのgit clone
コマンドは、リモートサーバーからバンドル情報(アドバタイズされている場合)を要求し、Gitプロトコルを介してクローンを続行する前にバンドルをダウンロードします。デフォルトはfalse
です。 - transfer.advertiseObjectInfo
-
true
の場合、サーバーによってobject-info
機能がアドバタイズされます。デフォルトはfalseです。 - uploadarchive.allowUnreachable
-
trueの場合、クライアントは
git archive --remote
を使用して、参照先から到達可能かどうかに関係なく、任意のツリーを要求できます。詳細については、`git-upload-archive[1]`の「セキュリティ」セクションの議論を参照してください。デフォルトはfalse
です。 - uploadpack.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、upload-pack
のみに適用されます(したがって、プッシュではなくフェッチのみに影響します)。git fetch
によって非表示の参照を取得しようとすると失敗します。uploadpack.allowTipSHA1InWant
も参照してください。 - uploadpack.allowTipSHA1InWant
-
uploadpack.hideRefs
が有効な場合、非表示の参照の先端にあるオブジェクトを要求するフェッチ要求をupload-pack
が受け入れることを許可します(デフォルトでは、そのような要求は拒否されます)。uploadpack.hideRefs
も参照してください。これがfalseの場合でも、クライアントは`gitnamespaces[7]`マニュアルページの「セキュリティ」セクションで説明されている手法を使用してオブジェクトを盗むことができる場合があります。機密データは別のリポジトリに保管することをお勧めします。 - uploadpack.allowReachableSHA1InWant
-
任意の参照先から到達可能なオブジェクトを要求するフェッチ要求を
upload-pack
が受け入れることを許可します。ただし、オブジェクトの到達可能性の計算には、計算コストがかかることに注意してください。デフォルトはfalse
です。これがfalseの場合でも、クライアントは`gitnamespaces[7]`マニュアルページの「セキュリティ」セクションで説明されている手法を使用してオブジェクトを盗むことができる場合があります。機密データは別のリポジトリに保管することをお勧めします。 - 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に完成したパックファイルが期待されます。この設定変数は、保護された設定で指定されている場合にのみ尊重されることに注意してください(`SCOPES`を参照)。これは、信頼できないリポジトリからのフェッチに対する安全対策です。
- uploadpack.allowFilter
-
このオプションが設定されている場合、
upload-pack
は部分クローンと部分フェッチオブジェクトのフィルタリングをサポートします。 - 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
機能をサポートします。この機能は、レプリケーションの遅延により、参照が指しているOIDについて同じビューを持っていない可能性のあるロードバランスされたサーバーの利点のために意図されています。 - url.<base>.insteadOf
-
この値で始まるURLは、代わりに<base>で始まるように書き換えられます。あるサイトが多数のリポジトリを提供し、複数のアクセス方法で提供し、一部のユーザーが異なるアクセス方法を使用する必要がある場合、この機能により、ユーザーは同等のURLのいずれかを指定し、Gitがそのサイトのこれまで見たことのないリポジトリについても、特定のユーザーにとって最適な代替URLに自動的に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]`の環境変数のセクション、認証資格情報を求めている場合は`git[1]`の`credential.username`オプションを参照してください。 - user.useConfigOnly
-
Gitに、
user.email
とuser.name
のデフォルトを推測しようとせず、代わりに設定からの値のみを取得するように指示します。たとえば、複数のメールアドレスがあり、リポジトリごとに異なるメールアドレスを使用する場合、グローバル設定でこの設定オプションをtrue
に設定し、名前を設定すると、Gitは新しいコミットを作成する前に、新しくクローンされたリポジトリでメールアドレスの設定を促します。デフォルトはfalse
です。 - user.signingKey
-
署名付きタグまたはコミットを作成するときに、`git-tag[1]`または`git-commit[1]`が自動的に目的のキーを選択しない場合、この変数を使用してデフォルトの選択を上書きできます。このオプションは、gpgの--local-userパラメーターに変更せずに渡されるため、gpgがサポートする任意の方法を使用してキーを指定できます。gpg.formatが
ssh
に設定されている場合、これはプライベートsshキーまたはssh-agentが使用されている場合の公開キーのいずれかのパスを含めることができます。あるいは、key::
で始まる公開キーを直接含めることもできます(例:「key::ssh-rsa XXXXXX identifier」)。プライベートキーはssh-agentを介して利用可能である必要があります。設定されていない場合、Gitはgpg.ssh.defaultKeyCommand(例:「ssh-add -L」)を呼び出し、利用可能な最初のキーを使用しようとします。「ssh-」で始まる生のキー(例:「ssh-rsa XXXXXX identifier」)は「key::ssh-rsa XXXXXX identifier」として扱われますが、この形式は非推奨です。代わりにkey::
形式を使用してください。 - versionsort.prereleaseSuffix(非推奨)
-
versionsort.suffix
の非推奨のエイリアス。versionsort.suffix
が設定されている場合、無視されます。 - versionsort.suffix
-
バージョンソートをgit-tag[1]で使用する場合でも、同じベースバージョンだがサフィックスの異なるタグ名は辞書順でソートされます。そのため、例えば、プレリリースタグがメインリリースの後に表示されることになります(例:「1.0」の後に「1.0-rc1」)。この変数は、サフィックスの異なるタグのソート順を決定するために指定できます。
この変数に単一のサフィックスを指定すると、そのサフィックスを含むタグ名はすべて、対応するメインリリースの前に表示されます。例えば、変数を「-rc」に設定すると、すべての「1.0-rcX」タグは「1.0」の前に表示されます。複数回(サフィックスごとに1回)指定すると、設定ファイル内のサフィックスの順序によって、それらのサフィックスを持つタグ名のソート順が決まります。例えば、「-pre」が設定ファイルで「-rc」の前にある場合、すべての「1.0-preX」タグは「1.0-rcX」タグの前にリストされます。様々なサフィックスを持つタグに対するメインリリースタグの位置は、他のサフィックスの中に空のサフィックスを指定することで決定できます。例えば、サフィックス「-rc」、「」、「-ck」、「-bfs」が設定ファイルにこの順序で表示される場合、すべての「v4.8-rcX」タグが最初にリストされ、次に「v4.8」、その後「v4.8-ckX」、最後に「v4.8-bfsX」がリストされます。
複数のサフィックスが同じタグ名に一致する場合、タグ名はタグ名内で最も早い位置から始まるサフィックスに従ってソートされます。その最も早い位置から始まる異なる一致するサフィックスが複数ある場合、タグ名はそれらのサフィックスの中で最も長いものに従ってソートされます。異なるサフィックス間のソート順序は、複数の設定ファイルにある場合は定義されません。
- web.browser
-
一部のコマンドで使用できるウェブブラウザを指定します。現在、git-instaweb[1]とgit-help[1]のみが使用できます。
- worktree.guessRemote
-
ブランチが指定されておらず、
-b
、-B
、--detach
も使用されていない場合、git worktree add
はHEADから新しいブランチを作成することをデフォルトとします。worktree.guessRemote
がtrueに設定されている場合、worktree add
は、その名前が新しいブランチ名と一意に一致するリモート追跡ブランチを見つけようとします。そのようなブランチが存在する場合は、チェックアウトされ、新しいブランチの「上流」として設定されます。そのような一致が見つからない場合は、現在のHEADから新しいブランチを作成するという元の動作に戻ります。
バグ
非推奨の[section.subsection]
構文を使用している場合、値を変更すると、サブセクションに少なくとも1つ以上の大文字が含まれている場合、変更ではなく複数行のキーが追加されます。例えば、設定が次のようになっている場合
[section.subsection] key = value1
そしてgit config section.Subsection.key value2
を実行すると、次のようになります。
[section.subsection] key = value1 key = value2
Git
git[1] スイートの一部