セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット取得
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常的なGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
プラミングコマンド
-
2.49.0
2025-03-14
-
2.48.1
2025-01-13
-
2.48.0
2025-01-10
-
2.47.2
2024-11-26
-
2.47.1
2024-11-25
-
2.47.0
2024-10-06
-
2.46.3
2024-11-26
-
2.46.2
2024-09-23
-
2.46.1
2024-09-13
-
2.46.0
2024-07-29
-
2.45.3
2024-11-26
- 2.45.1 → 2.45.2 変更なし
-
2.45.0
2024-04-29
-
2.44.3
2024-11-26
- 2.44.1 → 2.44.2 変更なし
-
2.44.0
2024-02-23
-
2.43.6
2024-11-26
- 2.43.2 → 2.43.5 変更なし
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
-
2.42.4
2024-11-26
- 2.42.2 → 2.42.3 変更なし
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
-
2.41.3
2024-11-26
- 2.41.1 → 2.41.2 変更なし
-
2.41.0
2023-06-01
-
2.40.4
2024-11-26
- 2.40.1 → 2.40.3 変更なし
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 変更なし
-
2.39.0
2022-12-12
- 2.38.3 → 2.38.5 変更なし
-
2.38.2
2022-12-11
-
2.38.1
2022-10-07
-
2.38.0
2022-10-02
- 2.37.5 → 2.37.7 変更なし
-
2.37.4
2022-10-06
- 2.37.3 変更なし
-
2.37.2
2022-08-11
- 2.37.1 変更なし
-
2.37.0
2022-06-27
- 2.36.4 → 2.36.6 変更なし
-
2.36.3
2022-10-06
-
2.36.2
2022-06-23
- 2.36.1 変更なし
-
2.36.0
2022-04-18
- 2.35.6 → 2.35.8 変更なし
-
2.35.5
2022-10-06
-
2.35.4
2022-06-23
-
2.35.3
2022-04-13
-
2.35.2
2022-03-23
- 2.35.1 変更なし
-
2.35.0
2022-01-24
- 2.34.6 → 2.34.8 変更なし
-
2.34.5
2022-10-06
-
2.34.4
2022-06-23
-
2.34.3
2022-04-13
-
2.34.2
2022-03-23
- 2.34.1 変更なし
-
2.34.0
2021-11-15
- 2.33.6 → 2.33.8 変更なし
-
2.33.5
2022-10-06
-
2.33.4
2022-06-23
-
2.33.3
2022-04-13
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
-
2.33.0
2021-08-16
- 2.32.5 → 2.32.7 変更なし
-
2.32.4
2022-10-06
-
2.32.3
2022-06-23
-
2.32.2
2022-04-13
-
2.32.1
2022-03-23
-
2.32.0
2021-06-06
- 2.31.6 → 2.31.8 変更なし
-
2.31.5
2022-10-06
-
2.31.4
2022-06-23
-
2.31.3
2022-04-13
-
2.31.2
2022-03-23
-
2.31.1
2021-03-26
-
2.31.0
2021-03-15
- 2.30.7 → 2.30.9 変更なし
-
2.30.6
2022-10-06
-
2.30.5
2022-06-23
-
2.30.4
2022-04-13
-
2.30.3
2022-03-23
- 2.30.2 変更なし
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
2020-10-19
- 2.28.1 変更なし
-
2.28.0
2020-07-27
- 2.27.1 変更なし
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
2020-03-22
- 2.25.3 → 2.25.5 変更なし
-
2.25.2
2020-03-17
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.24.1 → 2.24.4 変更なし
-
2.24.0
2019-11-04
- 2.23.1 → 2.23.4 変更なし
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 変更なし
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 変更なし
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 変更なし
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 変更なし
-
2.19.2
2018-11-21
- 2.19.1 変更なし
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 変更なし
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 変更なし
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
概要
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> 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つ付けるだけです (EXAMPLES も参照)。ただし、これは --fixed-value
オプションが使用されていない場合にのみ機能することに注意してください。
--type=<type>
オプションは、git config に、入力値と出力値が指定された <type> の下で正規化可能であることを保証するように指示します。--type=<type>
が指定されていない場合、正規化は実行されません。呼び出し元は、--no-type
を使用して既存の --type
指定子を削除できます。
読み取り時、値はデフォルトでシステム、グローバル、リポジトリローカルの構成ファイルから読み込まれ、--system
、--global
、--local
、--worktree
、--file <filename>
オプションを使用して、その場所のみから読み込むようにコマンドに指示できます (FILES を参照)。
書き込み時、新しい値はデフォルトでリポジトリローカルの構成ファイルに書き込まれ、--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>
-
二部構成の <name> を <section>.<key> として指定した場合、与えられたURLに最も一致する <URL> 部分を持つ <section>.<URL>.<key> の値が返されます (そのようなキーが存在しない場合、<section>.<key> の値がフォールバックとして使用されます)。名前として <section> のみを指定した場合、そのセクション内のすべてのキーに対して同様の処理を行い、それらを一覧表示します。値が見つからない場合はエラーコード1を返します。
- --global
-
オプションの書き込み: リポジトリの
.git/config
ではなく、グローバルの~/.gitconfig
ファイルに書き込みます。このファイルが存在し、~/.gitconfig
ファイルが存在しない場合は、$XDG_CONFIG_HOME/git/config
ファイルに書き込みます。オプションの読み取り: 利用可能なすべてのファイルからではなく、グローバルの
~/.gitconfig
および$XDG_CONFIG_HOME/git/config
からのみ読み取ります。詳しくは FILES を参照してください。
- --system
-
オプションの書き込み: リポジトリの
.git/config
ではなく、システム全体の$(prefix)/etc/gitconfig
に書き込みます。オプションの読み取り: 利用可能なすべてのファイルからではなく、システム全体の
$(prefix)/etc/gitconfig
からのみ読み取ります。詳しくは FILES を参照してください。
- --local
-
オプションの書き込み: リポジトリの
.git/config
ファイルに書き込みます。これがデフォルトの動作です。オプションの読み取り: 利用可能なすべてのファイルからではなく、リポジトリの
.git/config
からのみ読み取ります。詳しくは FILES を参照してください。
- --worktree
-
--local
と同様ですが、extensions.worktreeConfig
が有効な場合は$GIT_DIR/config.worktree
から読み取ったり書き込んだりします。有効でない場合は--local
と同じです。メインの作業ツリーでは$GIT_DIR
は$GIT_COMMON_DIR
と同じですが、他の作業ツリーでは$GIT_DIR/worktrees/<id>/
の形式になります。extensions.worktreeConfig
を有効にする方法については、git-worktree[1] を参照してください。 - -f <config-file>
- --file <config-file>
-
オプションの書き込み: リポジトリの
.git/config
ではなく、指定されたファイルに書き込みます。オプションの読み取り: 利用可能なすべてのファイルからではなく、指定されたファイルからのみ読み取ります。
詳しくは FILES を参照してください。
- --blob <blob>
-
--file
と同様ですが、ファイルの代わりに指定されたブロブを使用します。例えば、master:.gitmodules を使用して、マスターブランチのファイル .gitmodules から値を読み取ることができます。ブロブ名の指定方法のより完全なリストについては、gitrevisions[7] の「SPECIFYING REVISIONS」セクションを参照してください。 - --fixed-value
-
value-pattern
引数と共に使用する場合、value-pattern
を正規表現ではなく正確な文字列として扱います。これにより、値がvalue-pattern
と完全に一致する名前/値のペアのみにマッチが制限されます。 - --type <type>
-
git config は、与えられた型制約の下で入力または出力が有効であることを保証し、
<type>
の標準形式で出力値を正規化します。有効な
<type>
は以下のとおりです-
bool:
true
、yes
、on
、および正の数を「true」として、false
、no
、off
、および0
を「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
-
照会されたすべての設定オプションの出力に、オリジンタイプ (ファイル、標準入力、ブロブ、コマンドライン) および実際のオリジン (該当する場合は設定ファイルパス、参照、またはブロブID) を追加します。
- --show-scope
-
--show-origin
と同様に、照会されたすべての設定オプションの出力にその値のスコープ (worktree, local, global, system, command) を追加します。 - --get-colorbool <name> [<stdout-is-tty>]
-
<name>
(例:color.diff
) の色設定を検索し、「true」または「false」を出力します。<stdout-is-tty>
は「true」または「false」である必要があり、設定が「auto」と指定されている場合に考慮されます。<stdout-is-tty>
が省略されている場合、コマンド自体の標準出力を確認し、色を使用する場合はステータス0で終了し、それ以外の場合はステータス1で終了します。name
の色設定が未定義の場合、コマンドはcolor.ui
をフォールバックとして使用します。 - --[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
が存在する場合にのみ検索されます。
任意のgitコマンドを実行する際に、-c
オプションを使用して追加の設定パラメータを提供することもできます。詳細については、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 を参照してください。
ほとんどの構成オプションは、定義されたスコープに関係なく尊重されますが、一部のオプションは特定のスコープでのみ尊重されます。詳細については、各オプションのドキュメントを参照してください。
環境変数
詳しくは FILES を参照してください。
- GIT_CONFIG_COUNT
- GIT_CONFIG_KEY_<n>
- GIT_CONFIG_VALUE_<n>
-
GIT_CONFIG_COUNT が正の数に設定されている場合、その数までのすべての環境ペア GIT_CONFIG_KEY_<n> と GIT_CONFIG_VALUE_<n> がプロセスの実行時構成に追加されます。設定ペアはゼロインデックスです。キーまたは値が欠落している場合はエラーとして扱われます。GIT_CONFIG_COUNT が空の場合は GIT_CONFIG_COUNT=0 と同じように扱われ、ペアは処理されません。これらの環境変数は構成ファイル内の値を上書きしますが、
git -c
を介して渡される明示的なオプションによって上書きされます。これは、共通の構成を持つ複数のgitコマンドを起動したいが、構成ファイルに依存できない場合 (例えばスクリプトを作成する場合など) に役立ちます。
- GIT_CONFIG
-
git config
に--file
オプションが提供されていない場合、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
これでファイルモードを true に設定できます。
% git config set core.filemode true
仮説上のプロキシコマンドエントリには、実際にどのURLに適用されるかを識別するための接尾辞があります。ここでは、kernel.orgのエントリを「ssh」に変更する方法を示します。
% git config set --value='for kernel.org$' core.gitproxy '"ssh" for kernel.org'
これにより、kernel.org のキー/値のペアのみが置き換えられることが保証されます。
リネームのエントリを削除するには、以下を実行します。
% 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
に設定され、その他のすべてでは 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] の「CONFIGURATION FILE」セクションを参照) は、そのリポジトリの設定を保存するために使用され、$HOME/.gitconfig
は、.git/config
ファイルのフォールバック値としてユーザーごとの設定を保存するために使用されます。/etc/gitconfig
ファイルは、システム全体のデフォルト設定を保存するために使用できます。
構成変数は、Gitのプラミングコマンドとポーセリンコマンドの両方で使用されます。変数はセクションに分割されており、変数自体の完全修飾変数名は最後のドット区切りのセグメントであり、セクション名は最後のドットより前のすべてです。変数名は大文字と小文字を区別せず、英数字と -
のみを使用でき、英字で始まる必要があります。一部の変数は複数回出現する場合があります。この場合、その変数は多値であると言います。
構文
構文はかなり柔軟で許容的です。この文脈での空白文字、つまりスペース文字 (SP) と水平タブ (HT) はほとんど無視されます。#
と ;
文字は行末までのコメントを開始します。空行は無視されます。
ファイルはセクションと変数で構成されます。セクションは角括弧で囲まれたセクション名で始まり、次のセクションが始まるまで続きます。セクション名は大文字と小文字を区別しません。セクション名には英数字、-
、および .
のみが許可されます。各変数は何らかのセクションに属している必要があり、これは変数の最初の設定の前にセクションヘッダーがなければならないことを意味します。
セクションはさらにサブセクションに分割できます。サブセクションを開始するには、以下の例のように、セクションヘッダーでセクション名からスペースで区切られた二重引用符の中にその名前を置きます。
[section "subsection"]
サブセクション名は大文字と小文字を区別し、改行とヌルバイトを除く任意の文字を含めることができます。二重引用符 "
とバックスラッシュは、それぞれ \"
と \\
としてエスケープすることで含めることができます。他の文字の前に付くバックスラッシュは読み取り時に削除されます。例えば、\t
は t
として、\0
は 0
として読み取られます。セクションヘッダーは複数行にまたがることはできません。変数は直接セクションに属することも、特定のサブセクションに属することもできます。[section "subsection"]
がある場合、[section]
を持つことはできますが、その必要はありません。
非推奨の [section.subsection]
構文もあります。この構文では、サブセクション名が小文字に変換され、大文字と小文字を区別して比較されます。これらのサブセクション名は、セクション名と同じ制限に従います。
その他のすべての行 (およびセクションヘッダーの後の行の残り) は、name = value の形式 (または単に name、これは変数がブール値「true」であることを示す省略形) で変数を設定するものとして認識されます。変数名は大文字と小文字を区別せず、英数字と -
のみを使用でき、英字で始まる必要があります。
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:
の後に続くデータはグロブパターンとして使用されます。.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:
の後に続くデータは、標準のグロビングワイルドカードと、複数のパスコンポーネントに一致できる追加の2つ、**/
と/**
を持つパターンとみなされます。現在チェックアウトされているブランチの名前がパターンに一致するワークツリーにいる場合、インクルード条件が満たされます。パターンが
/
で終わる場合、**
が自動的に追加されます。例えば、パターンfoo/
はfoo/**
となります。言い換えれば、foo/
で始まるすべてのブランチに一致します。これは、ブランチが階層的に整理されており、その階層内のすべてのブランチに構成を適用したい場合に便利です。 -
hasconfig:remote.*.url:
-
このキーワードの後に続くデータは、標準のグロビングワイルドカードと、複数のコンポーネントに一致できる追加の2つ、
**/
と/**
を持つパターンとみなされます。このキーワードが初めて現れると、残りの設定ファイルがリモートURLについてスキャンされます (値は適用されません)。このパターンに一致するリモートURLが少なくとも1つ存在する場合、インクルード条件が満たされます。このオプションによって (直接的または間接的に) インクルードされたファイルは、リモートURLを含めることはできません。
他の
includeIf
条件とは異なり、この条件の解決は、条件の読み取り時点ではまだ不明な情報に依存していることに注意してください。一般的なユースケースとしては、このオプションがシステムレベルまたはグローバルレベルの設定として存在し、リモートURLがローカルレベルの設定にある場合です。したがって、この条件を解決する際に先行スキャンが必要です。潜在的にインクルードされるファイルがそのようなファイルが潜在的にインクルードされるかどうかに影響を与えるという鶏と卵の問題を回避するために、Gitはこれらのファイルがこれらの条件の解決に影響を与えることを禁止することにより (したがって、リモートURLを宣言することを禁止することにより)、このサイクルを断ち切ります。このキーワードの命名に関しては、より変数ベースのインクルード条件をサポートする命名スキームとの前方互換性のためですが、現在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つ) と属性 (好きなだけ) のリストであり、スペースで区切られます。
受け入れられる基本色は
normal
、black
、red
、green
、yellow
、blue
、magenta
、cyan
、white
、default
です。最初に指定された色が前景色であり、2番目が背景色です。normal
とdefault
を除くすべての基本色は、bright
を色の前に付けることで指定できる明るいバリアント (例:brightred
) を持ちます。色
normal
は色の変更を行いません。空文字列と同じですが、背景色のみを指定する場合に前景として使用できます (例: 「normal red」)。色
default
は、例えばクリアされた背景を指定するために、色を明示的に端末のデフォルトにリセットします。これは端末によって異なりますが、通常は「white black」に設定するのとは異なります。色は0から255の数値で指定することもできます。これらはANSI 256色モードを使用します (ただし、すべての端末がこれをサポートしているとは限りません)。端末がサポートしている場合、
#ff0ab3
のような16進数で24ビットRGB値を指定することも、#f1b
のような12ビットRGB値を指定することもできます。これは24ビットカラー#ff11bb
と同じです。受け入れられる属性は
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
-
ユーザーの情報がシステムユーザー名とドメイン名から推測された場合に、ユーザーにID設定方法を伝えるために表示されます。
- mergeConflict
-
さまざまなコマンドが競合のために停止した場合に表示されます。
- nestedTag
-
ユーザーがタグオブジェクトを再帰的にタグ付けしようとしたときに表示されます。
- pushAlreadyExists
-
git-push[1] がファストフォワードの対象とならない更新 (例: タグ) を拒否した場合に表示されます。
- pushFetchFirst
-
git-push[1] が、ローカルに存在しないオブジェクトを指すリモート参照を上書きしようとする更新を拒否した場合に表示されます。
- pushNeedsForce
-
git-push[1] が、コミット不可能オブジェクトを指すリモート参照を上書きしようとする更新、またはリモート参照をコミット不可能オブジェクトを指すように変更する更新を拒否した場合に表示されます。
- pushNonFFCurrent
-
git-push[1] が現在のブランチへの非ファストフォワード更新のために失敗した場合に表示されます。
- pushNonFFMatching
-
ユーザーが git-push[1] を実行し、「一致する参照」を明示的にプッシュした (つまり、
:
を使用したか、現在のブランチではない参照指定を指定した) 結果、非ファストフォワードエラーになった場合に表示されます。 - pushRefNeedsUpdate
-
git-push[1] が、リモートトラッキング参照にローカルにない更新があるブランチの強制更新を拒否した場合に表示されます。
- pushUnqualifiedRefname
-
git-push[1] が、ソースとデスティネーションの参照に基づいて、ソースがどのリモート参照の名前空間に属するかを推測することを諦めたが、ソースオブジェクトのタイプに基づいて
refs/heads/*
またはrefs/tags/*
のいずれかにプッシュするようユーザーに提案できる場合に表示されます。 - pushUpdateRejected
-
pushNonFFCurrent
、pushNonFFMatching
、pushAlreadyExists
、pushFetchFirst
、pushNeedsForce
、pushRefNeedsUpdate
を同時に無効にしたい場合は、この変数をfalse
に設定してください。 - rebaseTodoError
-
リベースの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 status
の出力をgit ps
がページングするからです。エイリアスの展開が感嘆符で始まる場合、それはシェルコマンドとして扱われます。例えば、
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コマンドラインに提供された追加の引数を、常に位置引数として受け取ります。
-
シェルエイリアスが複数のコマンドを持つ「ワンライナー」スクリプト (例: パイプライン内)、複数の引数を参照する、または末尾に追加された位置引数を処理できない場合、注意が必要です。例えば、
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
に設定すると、この設定は、パッチが適用されるべきブロブのIDを記録しており、それらのブロブがローカルで利用可能な場合 (コマンドラインから--3way
オプションを指定するのと同等)、git am
に3ウェイマージにフォールバックするように指示します。デフォルトはfalse
です。git-am[1] を参照してください。 - apply.ignoreWhitespace
-
change
に設定すると、git apply に--ignore-space-change
オプションと同じように、空白文字の変更を無視するように指示します。no
、none
、never
、false
のいずれかに設定すると、git apply にすべての空白文字の違いを尊重するように指示します。git-apply[1] を参照してください。 - apply.whitespace
-
git apply に、
--whitespace
オプションと同じように、空白文字の処理方法を指示します。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
-
連続する擬似マージビットマップグループのサイズが減少する割合を決定します。非負である必要があります。このパラメータは、関数
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/
の場合、この設定は各リモートのタグセットに個別に適用されます。非負である必要があります。デフォルト値は64です。
- bitmapPseudoMerge.<name>.stableThreshold
-
安定した擬似マージビットマップの候補となるコミット (上記の参照先端にあるもの、ただし安定したコミットはビットマップでカバーされている場合でも候補とみなされる) の最小経過時間を決定します。デフォルトは
1.month.ago
です。このしきい値をより小さな値 (例: 1.week.ago) に設定すると、より多くの安定したグループが生成されます (これには一度きりの生成コストがかかります) が、それらのグループは時間とともに古くなる可能性があります。より大きな値を使用すると、その逆のペナルティ (より少ないがより有用な安定したグループ) が発生します。
- 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行に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>.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> をリベースします。ブランチ固有ではない方法でこれを行うには、「pull.rebase」を参照してください。
merges
(または単に m) の場合、ローカルのマージコミットがリベースに含まれるように、git rebase に--rebase-merges
オプションを渡します (詳細は git-rebase[1] を参照)。値が
interactive
(または単に i) の場合、リベースはインタラクティブモードで実行されます。注意: これは潜在的に危険な操作です。その影響を理解していない限り、使用しないでください (詳細は 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 checkout <something>` または `git switch <something>` が別のリモート上の `<something>` ブランチをチェックアウトする場合に git-switch[1] および git-checkout[1] によって使用され、`git worktree add` がリモートブランチを参照する場合に git-worktree[1] によって使用されます。この設定は、将来的に他のチェックアウトに似たコマンドや機能に使用される可能性があります。
- 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
(その他の参照) のいずれかです。 - color.diff
-
パッチに色を追加するためにANSIエスケープシーケンスを使用するかどうか。これが
always
に設定されている場合、git-diff[1]、git-log[1]、および git-show[1] はすべてのパッチに色を使用します。true
またはauto
に設定されている場合、これらのコマンドは出力がターミナルに出力される場合にのみ色を使用します。設定されていない場合、color.ui
の値が使用されます (デフォルトはauto
)。これは git-format-patch[1] や git-diff-* プラミングコマンドには影響しません。コマンドラインで
--color[=<when>]
オプションを使用して上書きできます。 - color.diff.<slot>
-
diff の色付けにカスタム色を使用します。
<slot>
は、パッチのどの部分に指定された色を使用するかを指定し、context
(コンテキストテキスト -plain
は歴史的な同義語)、meta
(メタ情報)、frag
(ハンクヘッダー)、func (ハンクヘッダー内の関数)、old
(削除された行)、new
(追加された行)、commit
(コミットヘッダー)、whitespace
(空白エラーのハイライト)、oldMoved
(削除された行)、newMoved
(追加された行)、oldMovedDimmed
、oldMovedAlternative
、oldMovedAlternativeDimmed
、newMovedDimmed
、newMovedAlternative
newMovedAlternativeDimmed
(詳細については git-diff[1] の *--color-moved* の *<mode>* 設定を参照)、contextDimmed
、oldDimmed
、newDimmed
、contextBold
、oldBold
、およびnewBold
(詳細については git-range-diff[1] を参照) のいずれかです。 - color.decorate.<slot>
-
git log --decorate の出力にカスタム色を使用します。
<slot>
は、ローカルブランチ、リモート追跡ブランチ、タグ、stash、HEAD それぞれに対して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>
は、prompt
、header
、help
、またはerror
で、インタラクティブコマンドの4つの異なる通常の出力タイプに対応します。 - 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
(「no branch」警告が表示される色で、デフォルトは赤)、localBranch
またはremoteBranch
(ステータスのショートフォーマットでブランチおよび追跡情報が表示される場合の、それぞれローカルおよびリモートのブランチ名)、またはunmerged
(マージされていない変更があるファイル) のいずれかです。 - color.transport
-
プッシュが拒否されたときに色付けを有効/無効にするブール値です。
always
、false
(またはnever
)、またはauto
(またはtrue
) に設定できます。この場合、エラー出力がターミナルに出力される場合にのみ色が使用されます。設定されていない場合、color.ui
の値が使用されます (デフォルトはauto
)。 - color.transport.rejected
-
プッシュが拒否されたときにカスタム色を使用します。
- color.ui
-
この変数は、コマンドファミリごとの色の使用を制御する
color.diff
やcolor.grep
などの変数のデフォルト値を決定します。--color
オプションのデフォルトを設定する設定をより多くのコマンドが学習するにつれて、その範囲は拡大します。他の構成または--color
オプションで明示的に有効にしない限り、Git コマンドで色を使用しないことを好む場合は、false
またはnever
に設定します。機械消費を意図しないすべての出力で色を使用したい場合はalways
に、そのような出力がターミナルに書き込まれるときに色を使用したい場合はtrue
またはauto
(これは Git 1.8.4 以降のデフォルトです) に設定します。 - column.ui
-
サポートされているコマンドが列形式で出力すべきかどうかを指定します。この変数は、スペースまたはカンマで区切られたトークンのリストで構成されます。
これらのオプションは、機能が有効になる時期を制御します (デフォルトは 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 署名を行うべきかどうかを指定するブール値です。リベースなどの操作を行う際にこのオプションを使用すると、多数のコミットが署名される可能性があります。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 が読み書きする変更パスのブルームフィルターのバージョンを指定します。-1、0、1、または2のいずれかです。1より大きい値は、まだそれらのバージョンを理解していない古いバージョンのGitと互換性がない場合があることに注意してください。混在バージョンの環境で操作する場合は注意してください。
デフォルトは -1 です。
-1 の場合、Git はリポジトリ内の変更パスブルームフィルターのバージョンを使用し、存在しない場合は1にデフォルト設定します。
0 の場合、Git はブルームフィルターを読み込まず、書き込み指示があった場合にバージョン1のブルームフィルターを書き込みます。
1 の場合、Git はバージョン1のブルームフィルターのみを読み込み、バージョン1のブルームフィルターを書き込みます。
2 の場合、Git はバージョン2のブルームフィルターのみを読み込み、バージョン2のブルームフィルターを書き込みます。
詳細については 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 です (config ファイルで 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」セクションを参照してください。
複数のバージョンの Git (例えば、コマンドライン上のバージョンと IDE ツール内の別のバージョン) を同時に使用する場合、
core.fsmonitor
の定義がフックのパス名に加えてブール値を許可するように拡張されたことに注意してください。Git バージョン 2.35.1 以前はブール値を理解せず、「true」または「false」の値を呼び出すべきフックのパス名とみなします。Git バージョン 2.26 から 2.35.1 までは、フックプロトコル V2 をデフォルトとし、fsmonitor なし (フルスキャン) にフォールバックします。Git バージョン 2.26 より前は、フックプロトコル V1 をデフォルトとし、報告すべき変更がないと黙って仮定します (スキャンなし)。そのため、ステータスコマンドは不完全な結果を報告する可能性があります。このため、組み込みファイルシステムモニタを使用する前に、すべての Git バージョンをアップグレードすることをお勧めします。 - core.fsmonitorHookVersion
-
「fsmonitor」フックを呼び出すときに使用されるプロトコルバージョンを設定します。
現在、バージョン1と2があります。これが設定されていない場合、最初にバージョン2が試行され、失敗した場合はバージョン1が試行されます。バージョン1は、その時点以降にどのファイルが変更されたかを判断するための入力としてタイムスタンプを使用しますが、Watchman のような一部のモニターはタイムスタンプと共に使用すると競合状態が発生します。バージョン2は不透明な文字列を使用するため、モニターは競合状態なしでどのファイルが変更されたかを判断するために使用できる何かを返すことができます。
- core.trustctime
-
false の場合、インデックスとワーキングツリー間の ctime の差は無視されます。これは、Git の外部の何か (ファイルシステムクローラーや一部のバックアップシステム) によって inode の変更時刻が定期的に変更される場合に便利です。git-update-index[1] を参照してください。デフォルトは true です。
- core.splitIndex
-
true の場合、インデックスの split-index 機能が使用されます。git-update-index[1] を参照してください。デフォルトは false です。
- core.untrackedCache
-
インデックスの未追跡キャッシュ機能についてどうするかを決定します。この変数が設定されていない、または
keep
に設定されている場合、保持されます。true
に設定されている場合、自動的に追加されます。false
に設定されている場合、自動的に削除されます。true
に設定する前に、システムで mtime が正しく機能していることを確認する必要があります。git-update-index[1] を参照してください。feature.manyFiles
が有効になっており、この設定をデフォルトでtrue
にしている場合を除き、デフォルトではkeep
です。 - 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 の「micro」の八進数\302\265
) をエスケープするのと同じ方法でバックスラッシュでエスケープすることにより、パス名内の「異常な」文字を引用符で囲みます。この変数が false に設定されている場合、0x80 より大きいバイトはもはや「異常」とは見なされません。二重引用符、バックスラッシュ、および制御文字は、この変数の設定に関係なく常にエスケープされます。単純なスペース文字は「異常」とは見なされません。多くのコマンドは-z
オプションを使用してパス名を完全にそのまま出力できます。デフォルト値は true です。 - core.eol
-
テキストとしてマークされたファイル (
text
属性が設定されているか、text=auto
が設定されており Git が内容をテキストとして自動検出した場合) のワーキングディレクトリで使用する行末タイプを設定します。選択肢は lf、crlf、および native です。native はプラットフォームのネイティブな行末を使用します。デフォルト値はnative
です。行末変換の詳細については gitattributes[5] を参照してください。この値は、core.autocrlf
がtrue
またはinput
に設定されている場合、無視されることに注意してください。 - core.safecrlf
-
true の場合、行末変換がアクティブなときに Git が
CRLF
の変換が元に戻せるかどうかをチェックするようにします。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
でチェックアウトされる可能性があります。この場合、元のファイルはLF
を含んでいましたが、結果のファイルにはCRLF
が含まれます。しかし、両方のワークツリーで改行コードは一貫しており、すべてLF
またはすべてCRLF
のいずれかであり、混在することはありません。混在する改行コードを持つファイルは、core.safecrlf
メカニズムによって報告されます。 - core.autocrlf
-
この変数を「true」に設定することは、すべてのファイルで
text
属性を「auto」に設定し、core.eol を「crlf」に設定することと同じです。ワーキングディレクトリにCRLF
行末を持たせ、リポジトリに LF 行末がある場合は true に設定します。この変数は input に設定することもできます。その場合、出力変換は行われません。 - core.checkRoundtripEncoding
-
working-tree-encoding
属性 (gitattributes[5] を参照) で使用される場合に、Git が UTF-8 ラウンドトリップチェックを実行するエンコーディングのカンマおよび/または空白区切りのリスト。デフォルト値は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 の形式)。変数の値が「COMMAND for DOMAIN」形式の場合、コマンドは指定されたドメイン文字列で終わるホスト名にのみ適用されます。この変数は複数回設定でき、指定された順序で一致が取られます。最初の一致が優先されます。
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] の Examples セクションを参照)。Git は通常、これらのファイルの変更を検出しません。
これは、CIFS/Microsoft Windows のように lstat() 呼び出しが非常に遅いシステムで便利です。
デフォルトは false です。
- core.preferSymlinkRefs
-
HEAD およびその他のシンボリック参照ファイルのデフォルトの「symref」形式の代わりに、シンボリックリンクを使用します。これは、HEAD がシンボリックリンクであると期待する古いスクリプトで動作するために必要な場合があります。
- core.alternateRefsCommand
-
代替から利用可能な履歴のヒントをアドバタイズする場合、git-for-each-ref[1] の代わりにシェルを使用して指定されたコマンドを実行します。最初の引数は代替の絶対パスです。出力は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 ディレクトリへのパス (これは --git-dir または GIT_DIR で指定されるか、自動的に検出されます) に対する相対パスのいずれかです。--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/
下)、リモート参照 (つまりrefs/remotes/
下)、ノート参照 (つまりrefs/notes/
下)、およびシンボリック参照HEAD
に対して自動的に作成されます。always
に設定されている場合、refs/
下の任意の参照に対して、不足している reflog が自動的に作成されます。この情報は、「2日前」のブランチの先端がどのコミットであったかを判断するために使用できます。
この値は、ワーキングディレクトリが関連付けられているリポジトリではデフォルトで true、bare リポジトリではデフォルトで false です。
- core.repositoryFormatVersion
-
リポジトリのフォーマットとレイアウトのバージョンを識別する内部変数です。gitrepository-layout[5] を参照してください。
-
group (または true) の場合、リポジトリはグループ内の複数のユーザー間で共有可能になります (すべてのファイルとオブジェクトがグループ書き込み可能であることを確認します)。all (または world または everybody) の場合、リポジトリはグループ共有可能であることに加えて、すべてのユーザーが読み取り可能になります。umask (または false) の場合、Git は umask(2) によって報告されたパーミッションを使用します。0xxx の場合、0xxx は八進数であり、リポジトリ内のファイルはこのモード値を持つことになります。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(つまり、100ミリ秒再試行)です。
- core.packedRefsTimeout
-
packed-refs
ファイルをロックしようとするときに再試行する時間(ミリ秒単位)です。値0はまったく再試行しないことを意味し、-1は無期限に再試行することを意味します。デフォルトは1000(つまり、1秒間再試行)です。 - core.pager
-
Gitコマンド(例:less)で使用するテキストビューア。この値はシェルによって解釈されることを意図しています。優先順位は、
$GIT_PAGER
環境変数、次にcore.pager
設定、次に$PAGER
、そしてコンパイル時に選択されたデフォルト(通常はless)です。LESS
環境変数が設定されていない場合、GitはそれをFRX
に設定します(LESS
環境変数が設定されている場合、Gitはそれをまったく変更しません)。GitのLESS
のデフォルト設定を選択的に上書きしたい場合は、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を介して強化(hardened)すべきものをコンマ区切りでリストします。任意のコンポーネントの強化を無効にするには、-を接頭辞として付けます。強化されていない項目は、クリーンでないシステムシャットダウンの際に失われる可能性があります。特別な要件がない限り、このオプションを空にするか、
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
は、書き込み専用のフラッシュを使用してディスク書き戻しキャッシュに複数の更新をステージングし、その後、ダミーファイルに対して1回の完全なfsyncを実行して、操作の最後にディスクキャッシュのフラッシュをトリガーするモードを有効にします。現在、
batch
モードはルーズオブジェクトファイルにのみ適用されます。その他のリポジトリデータは、fsync
が指定された場合と同様に永続化されます。このモードは、macOS上のHFS+またはAPFSファイルシステムに保存されたリポジトリ、およびWindows上のNTFSまたはReFSファイルシステムに保存されたリポジトリでは、fsync
と同程度に安全であると予想されます。
-
- core.fsyncObjectFiles
-
このブール値は、オブジェクトファイルの書き込み時にfsync()を有効にします。この設定は非推奨です。代わりにcore.fsyncを使用してください。
この設定は、Gitリポジトリにルーズオブジェクト形式で追加されたデータに影響します。trueに設定すると、Gitはfsyncまたは同様のシステムコールを発行してキャッシュをフラッシュし、クリーンでないシステムシャットダウンが発生した場合でもルーズオブジェクトの一貫性を保ちます。
- core.preloadIndex
-
git diffなどの操作で並列インデックスプレロードを有効にします
これは、特にキャッシュセマンティクスが弱く、IOレイテンシが比較的高くなりがちなNFSのようなファイルシステムでのgit diffやgit statusなどの操作を高速化できます。有効にすると、Gitはインデックスとファイルシステムデータの比較を並行して行い、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
-
コミットメッセージを表示する際、指定されたrefに保存されているノートも表示します。refは完全に修飾されている必要があります。指定されたrefが存在しない場合でもエラーではなく、ノートを何も表示しないことを意味します。
この設定はデフォルトで"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
-
"sparse checkout"機能を有効にします。git-sparse-checkout[1]の詳細を参照してください。
- core.sparseCheckoutCone
-
sparse checkout機能の「コーンモード」を有効にします。sparse-checkoutファイルが限定されたパターンセットを含む場合、このモードは大幅なパフォーマンス上の利点を提供します。この変数を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.sanitizePrompt
-
デフォルトでは、パスワードプロンプトの一部として表示されるユーザー名とホストには制御文字を含めることができません(デフォルトではURLエンコードされます)。この設定を
false
に構成して、その動作を上書きします。 - credential.protectProtocol
-
デフォルトでは、Gitが認証情報ヘルパーと通信する際に使用されるプロトコルには、キャリッジリターン文字は許可されていません。この設定により、ユーザーはこのデフォルトを上書きできます。
- credential.username
-
ネットワーク認証にユーザー名が設定されていない場合、デフォルトでこのユーザー名を使用します。以下のcredential.<context>.*およびgitcredentials[7]を参照してください。
- credential.<url>.*
-
上記のcredential.*オプションのいずれかを、一部の認証情報に選択的に適用できます。例えば、"credential.https://example.com.username"は、example.comへのhttps接続に対してのみデフォルトのユーザー名を設定します。gitcredentials[7]でURLの一致方法の詳細を参照してください。
- 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=<param>,...
を使用して)上書きできます。フォールバックのデフォルト(diff.dirstat
によって変更されない場合)はchanges,noncumulative,3
です。利用可能なパラメータは以下の通りです-
changes
-
dirstatの数値は、ソースから削除された行、または宛先に追加された行を数えることで計算します。これは、ファイル内の純粋なコード移動の量を無視します。言い換えれば、ファイル内の行を並べ替えることは、他の変更ほどカウントされません。これはパラメータが与えられない場合のデフォルトの動作です。
-
lines
-
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>行のコンテキストで差分を生成します。この値は
-U
オプションによって上書きされます。 -
diff.interHunkContext
-
差分ハンク間のコンテキストを指定された行数まで表示し、それによって互いに近いハンクを結合します。この値は、
--inter-hunk-context
コマンドラインオプションのデフォルトとして機能します。 -
diff.external
-
この設定変数が設定されている場合、差分生成は内部の差分機構を使用せず、指定されたコマンドを使用します。
GIT_EXTERNAL_DIFF
環境変数で上書きできます。コマンドは、git[1]の「git Diffs」で説明されているパラメータで呼び出されます。注:外部差分プログラムをファイルの一部にのみ使用したい場合は、代わりにgitattributes[5]を使用することをお勧めします。 -
diff.trustExitCode
-
このブール値が
true
に設定されている場合、diff.external
コマンドは、入力ファイルが等しいと見なす場合は終了コード0を返し、異なる場合は1を返す(diff
(1)と同様)と予想されます。デフォルトであるfalse
に設定されている場合、コマンドは等価性に関係なく終了コード0
を返すと予想されます。その他の終了コードは、Gitに致命的なエラーを報告させます。 -
diff.ignoreSubmodules
-
--ignore-submodules
のデフォルト値を設定します。これはgit diff
Porcelainのみに影響し、git diff-files
のような下位レベルのdiff
コマンドには影響しないことに注意してください。git checkout
およびgit switch
も、コミットされていない変更を報告する際にこの設定を尊重します。all
に設定すると、status.submoduleSummary
が設定されている場合にgit commit
およびgit status
によって通常表示されるサブモジュールサマリーが無効になります。ただし、--ignore-submodules
コマンドラインオプションを使用して上書きされた場合は除きます。git submodule
コマンドはこの設定の影響を受けません。デフォルトではuntrackedに設定されているため、未追跡のサブモジュールはすべて無視されます。 -
diff.mnemonicPrefix
-
設定されている場合、
git diff
は、比較対象に応じて、標準のa/
とb/
とは異なるプレフィックスペアを使用します。この設定が有効な場合、逆差分出力でもプレフィックスの順序が入れ替わります -
diff.noPrefix
-
設定されている場合、
git diff
はソースまたは宛先プレフィックスを表示しません。 -
diff.srcPrefix
-
設定されている場合、
git diff
はこのソースプレフィックスを使用します。デフォルトはa/
です。 -
diff.dstPrefix
-
設定されている場合、
git diff
はこの宛先プレフィックスを使用します。デフォルトはb/
です。 -
diff.relative
-
true
に設定されている場合、git diff
はディレクトリ外の変更を表示せず、現在のディレクトリからの相対パス名を表示します。 -
diff.orderFile
-
差分内のファイルの順序を示すファイル。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
フォーマットは、変更されたサブモジュールの内容のインライン差分を表示します。デフォルトはshort
です。 -
diff.wordRegex
-
単語ごとの差分計算を行う際に「単語」を決定するために使用されるPOSIX拡張正規表現。正規表現に一致する文字シーケンスは「単語」であり、他のすべての文字は無視可能な空白です。
-
diff.<driver>.command
-
カスタム差分ドライバーコマンド。gitattributes[5]の詳細を参照してください。
-
diff.<driver>.trustExitCode
-
このブール値が
true
に設定されている場合、diff.<driver>.command
コマンドは、入力ファイルが等しいと見なす場合は終了コード0を返し、異なる場合は1を返す(diff
(1)と同様)と予想されます。デフォルトであるfalse
に設定されている場合、コマンドは等価性に関係なく終了コード0を返すと予想されます。その他の終了コードは、Gitに致命的なエラーを報告させます。 -
diff.<driver>.xfuncname
-
差分ドライバーがハンクヘッダーを認識するために使用すべき正規表現。組み込みパターンも使用できます。gitattributes[5]の詳細を参照してください。
-
diff.<driver>.binary
-
このオプションを
true
に設定すると、差分ドライバーはファイルをバイナリとして扱います。gitattributes[5]の詳細を参照してください。 -
diff.<driver>.textconv
-
差分ドライバーがファイルのテキスト変換バージョンを生成するために呼び出すべきコマンド。変換結果は人間が読める差分を生成するために使用されます。gitattributes[5]の詳細を参照してください。
-
diff.<driver>.wordRegex
-
差分ドライバーが1行内の単語を分割するために使用すべき正規表現。gitattributes[5]の詳細を参照してください。
-
diff.<driver>.cachetextconv
-
このオプションを
true
に設定すると、差分ドライバーはテキスト変換出力をキャッシュします。gitattributes[5]の詳細を参照してください。 -
diff.indentHeuristic
-
このオプションを
false
に設定すると、パッチを読みやすくするために差分ハンクの境界をシフトするデフォルトのヒューリスティクスが無効になります。 -
diff.algorithm
-
差分アルゴリズムを選択します。バリアントは以下の通りです
-
diff.wsErrorHighlight
-
差分の
context
、old
、またはnew
行の空白エラーを強調表示します。複数の値はコンマで区切られ、none
は以前の値をリセットし、default
はリストをnew
にリセットし、all
はold,new,context
の省略形です。空白エラーはcolor.diff.whitespace
で色付けされます。コマンドラインオプション--ws-error-highlight=<kind>
はこの設定を上書きします。 -
diff.colorMoved
-
有効な<mode>または
true
の値に設定されている場合、差分内の移動した行は異なる色で表示されます。有効なモードの詳細については、git-diff[1]の--color-moved
を参照してください。単にtrue
に設定されている場合、デフォルトの色モードが使用されます。false
に設定されている場合、移動した行は色付けされません。 -
diff.colorMovedWS
-
diff.colorMoved
設定などを使用して移動した行が色付けされる場合、このオプションはスペースの扱い方を制御します。有効なモードの詳細については、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変数の定義が必要です。-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
kompare
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
- 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
に設定します(--gui
引数を指定するのと同等)。または、DISPLAY
環境変数の値の有無に応じてdiff.guitool
またはdiff.tool
を選択するにはauto
に設定します。デフォルトはfalse
で、この場合、diff.guitool
を使用するには--gui
引数を明示的に指定する必要があります。 - extensions.*
-
特に明記しない限り、
core.repositoryFormatVersion
が1
でない場合、拡張機能を指定するとエラーになります。gitrepository-layout[5]を参照してください。- compatObjectFormat
-
使用する互換性ハッシュアルゴリズムを指定します。許容される値は
sha1
とsha256
です。指定する値はextensions.objectFormat
の値とは異なる必要があります。これにより、objectFormatがこのcompatObjectFormatと一致するGitリポジトリ間のクライアントレベルの相互運用性が可能になります。特に、完全に実装された場合、objectFormatがcompatObjectFormatと一致するリポジトリからのプッシュとプルが可能になります。また、objectFormatでエンコードされたOIDに加えて、compatObjectFormatでエンコードされたOIDを使用してローカルでオブジェクトを指定することもできます。 - noop
-
この拡張機能は、Gitの動作をまったく変更しません。format-1の互換性をテストする場合にのみ役立ちます。
歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
設定に関係なく尊重されます。 - noop-v1
-
この拡張機能は、Gitの動作をまったく変更しません。format-1の互換性をテストする場合にのみ役立ちます。
- objectFormat
-
使用するハッシュアルゴリズムを指定します。許容される値は
sha1
とsha256
です。指定されない場合、sha1
が仮定されます。この設定は、git-init[1]またはgit-clone[1]によってのみ設定されるべきであることに注意してください。初期化後に変更しようとすると機能せず、診断が困難な問題が発生します。
- partialClone
-
有効になっている場合、リポジトリが部分クローンで作成されたこと(または後に部分フェッチを実行したこと)、およびリモートが特定の不要なオブジェクトの送信を省略した可能性があることを示します。このようなリモートは「プロミサーリモート」と呼ばれ、省略されたすべてのオブジェクトを将来的にそこからフェッチできることを約束します。
このキーの値は、プロミサーリモートの名前です。
歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
設定に関係なく尊重されます。 - preciousObjects
-
有効になっている場合、リポジトリ内のオブジェクトを削除してはならないことを示します(例:
git-prune
やgit repack -d
による)。歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
設定に関係なく尊重されます。 - refStorage
-
使用するrefストレージフォーマットを指定します。許容される値は次のとおりです
-
packed-refsを含むルーズファイル用の
files
。これがデフォルトです。 -
reftable形式用の
reftable
。この形式は実験的なものであり、内部構造は変更される可能性があります。
この設定は、git-init[1]またはgit-clone[1]によってのみ設定されるべきであることに注意してください。初期化後に変更しようとすると機能せず、診断が困難な問題が発生します。
-
- relativeWorktrees
-
有効になっている場合、少なくとも1つのワークツリーが相対パスでリンクされていることを示します。
--relative-paths
オプションまたはworktree.useRelativePaths
設定がtrue
に設定された状態でワークツリーが作成または修復された場合、自動的に設定されます。 - worktreeConfig
-
有効になっている場合、ワークツリーは
$GIT_COMMON_DIR/config
ファイルに加えて$GIT_DIR/config.worktree
ファイルから設定をロードします。メインの作業ツリーでは$GIT_COMMON_DIR
と$GIT_DIR
は同じですが、他の作業ツリーでは$GIT_DIR
が$GIT_COMMON_DIR/worktrees/<id>/
と等しいことに注意してください。config.worktree
ファイルの設定は、他の設定ファイルからの設定を上書きします。この拡張機能を有効にする場合、共通設定ファイルからメインの作業ツリーの
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
組み込みコマンドはこの拡張機能を有効にし、これらの設定値をワークツリーごとに割り当て、$GIT_DIR/info/sparse-checkout
ファイルを使用して各ワークツリーの疎密性を個別に指定します。git-sparse-checkout[1]の詳細を参照してください。+ 歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
設定に関係なく尊重されます。 -
- fastimport.unpackLimit
-
git-fast-import[1]によってインポートされるオブジェクトの数がこの制限を下回る場合、オブジェクトはルーズオブジェクトファイルに展開されます。しかし、インポートされたオブジェクトの数がこの制限と等しいか超える場合、受信したパックは、不足しているデルタベースを追加した後、パックとして保存されます。高速インポートからパックを保存すると、特に低速なファイルシステム上でインポート操作をより速く完了させることができます。設定されていない場合、
transfer.unpackLimit
の値が代わりに使用されます。 - feature.*
-
feature.
で始まる設定は、他の設定グループのデフォルトを変更します。これらのグループは、Git開発者コミュニティによって推奨デフォルトとして作成されており、変更される可能性があります。特に、異なるデフォルトを持つ新しい設定オプションが追加されることがあります。 - feature.experimental
-
Gitに新しく、将来のデフォルトとして検討されている設定オプションを有効にします。ここに含まれる設定は、マイナーバージョンアップデートを含む各リリースで追加または削除される可能性があります。これらの設定は新しいため、意図しない相互作用があるかもしれません。実験的機能についてフィードバックを提供することに関心がある場合は、この設定を有効にしてください。新しいデフォルト値は次の通りです
-
fetch.negotiationAlgorithm=skipping
は、一度により多くのコミットをスキップし、ラウンドトリップの回数を減らすことで、フェッチのネゴシエーション時間を改善する可能性があります。 -
pack.useBitmapBoundaryTraversal=true
は、処理するオブジェクトの数を減らすことで、ビットマップの走査時間を改善する可能性があります。 -
pack.allowPackReuse=multi
は、単一のパックからだけでなく複数のパックからオブジェクトを再利用することで、パック作成にかかる時間を改善する可能性があります。
-
- 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
内の基礎となるフェッチ) が、サブモジュールに再帰的にフェッチするかどうかを制御します。このオプションは、ブール値または 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の場合、フェッチは、コマンドラインで
--prune
オプションが与えられたかのように自動的に動作します。remote.<name>.prune
および git-fetch[1] のPRUNINGセクションも参照してください。 - fetch.pruneTags
-
trueの場合、フェッチは、既に設定されていない場合、プルーニング時に
refs/tags/*:refs/tags/*
リフスペックが提供されたかのように自動的に動作します。これにより、このオプションとfetch.prune
の両方を設定して、アップストリームのリファレンスとの1対1のマッピングを維持できます。remote.<name>.pruneTags
および git-fetch[1] のPRUNINGセクションも参照してください。 - fetch.all
-
trueの場合、フェッチは利用可能なすべてのリモートを更新しようとします。この動作は、
--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
がこの値よりも厳密に大きくない場合、将来のバンドルダウンロードを防止するために使用されます。作成トークンの値は、特定のバンドル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" で、パッチが複数ある場合にのみ有効になります。"true" または "false" に設定することで、すべてのメッセージで有効または無効にできます。git-format-patch[1] の --numbered オプションを参照してください。
- format.headers
-
メールで送信されるパッチに含める追加のメールヘッダー。git-format-patch[1] を参照してください。
- format.to
- format.cc
-
メールで送信されるパッチに含める追加の受信者。git-format-patch[1] の --to および --cc オプションを参照してください。
- format.subjectPrefix
-
format-patch のデフォルトは、[PATCH] の件名プレフィックスを持つファイルを出力することです。この変数を使用して、そのプレフィックスを変更します。
- format.coverFromDescription
-
format-patch が、ブランチの説明を使用してカバーレターのどの部分に情報を入力するかを決定するデフォルトモード。git-format-patch[1] の
--cover-from-description
オプションを参照してください。 - format.signature
-
format-patch のデフォルトは、Gitのバージョン番号を含む署名を出力することです。この変数を使用して、そのデフォルトを変更します。署名の生成を抑制するには、この変数を空の文字列 ("") に設定します。
- format.signatureFile
-
format.signature と同じように機能しますが、この変数で指定されたファイルの内容が署名として使用されます。
- format.suffix
-
format-patch のデフォルトは、サフィックス
.patch
を持つファイルを出力することです。この変数を使用して、そのサフィックスを変更します(ドットを含める場合は含めてください)。 - format.encodeEmailHeaders
-
非ASCII文字を含むメールヘッダーを、メール送信のために "Q-encoding" (RFC 2047で記述) でエンコードします。デフォルトはtrueです。
- format.pretty
-
log/show/whatchanged コマンドのデフォルトのpretty形式。git-log[1], git-show[1], git-whatchanged[1] を参照してください。
- format.thread
-
git format-patch のデフォルトのスレッド化スタイル。ブール値、または
shallow
またはdeep
を指定できます。shallow
スレッド化は、すべてのメールをシリーズの先頭への返信とし、先頭はカバーレター、--in-reply-to
、最初のパッチメールの順に選択されます。deep
スレッド化は、すべてのメールを前のメールへの返信とします。trueのブール値はshallow
と同じであり、falseの値はスレッド化を無効にします。 - format.signOff
-
format-patch の
-s/--signoff
オプションをデフォルトで有効にするブール値。注: パッチにSigned-off-by
トレーラーを追加することは意識的な行為であり、同じオープンソースライセンスの下でこの作品を提出する権利があることを証明することを意味します。詳細については、SubmittingPatches ドキュメントを参照してください。 - format.coverLetter
-
format-patch が呼び出されたときにカバーレターを生成するかどうかを制御するブール値ですが、パッチが複数ある場合にのみカバーレターを生成するように "auto" に設定することもできます。デフォルトはfalseです。
- format.outputDirectory
-
結果のファイルを現在の作業ディレクトリではなく、カスタムディレクトリに保存するように設定します。すべてのディレクトリコンポーネントが作成されます。
- format.filenameMaxLength
-
format-patch
コマンドによって生成される出力ファイル名の最大長。デフォルトは64です。--filename-max-length=<n>
コマンドラインオプションで上書きできます。 - format.useAutoBase
-
format-patch の
--base=auto
オプションをデフォルトで有効にするブール値。"whenAble" に設定することもでき、適切なベースが利用可能な場合に--base=auto
を有効にしますが、それ以外の場合はフォーマットが終了することなくベース情報の追加をスキップします。 - format.notes
-
format-patch の
--notes
オプションのデフォルト値を提供します。ブール値、またはノートを取得する場所を指定するリファレンスを受け入れます。falseの場合、format-patch はデフォルトで--no-notes
になります。trueの場合、format-patch はデフォルトで--notes
になります。ブール値以外の値に設定した場合、format-patch はデフォルトで--notes=<ref>
になり、ref
はブール値以外の値です。デフォルトはfalseです。リファレンス
refs/notes/true
を使用したい場合は、代わりにそのリテラルを使用してください。複数のノートリファレンスを含めることを可能にするために、この設定を複数回指定できます。その場合、複数の
--[no-]notes[=]
オプションが渡された場合と同様に動作します。つまり、true
の値はデフォルトのノートを表示し、<ref>
の値はそのノートリファレンスからのノートも表示し、false
の値は以前の設定を否定し、ノートを表示しません。例:
[format] notes = true notes = foo notes = false notes = bar
refs/notes/bar
からのノートのみを表示します。 - format.mboxrd
-
--stdout
が使用されている場合に、"^>+From " の行をエスケープするために、堅牢な "mboxrd" 形式を有効にするブール値。 - format.noprefix
-
設定されている場合、パッチにソースまたは宛先のプレフィックスを表示しません。これは
git diff
で使用されるdiff.noprefix
オプションと同じです(ただし、format-patch
では尊重されません)。これを設定すると、生成したパッチの受信者は-p0
オプションを使用して適用する必要があることに注意してください。 - fsck.<msg-id>
-
fsck 中に、gitは現在のバージョンのgitでは生成されず、
transfer.fsckObjects
が設定されていればワイヤー経由で送信されない、レガシーデータに関する問題を発見する可能性があります。この機能は、そのようなデータを含むレガシーリポジトリでの作業をサポートすることを目的としています。fsck.<msg-id>
を設定すると、git-fsck[1] がこれを認識しますが、そのようなデータのプッシュを受け入れるには代わりにreceive.fsck.<msg-id>
を設定し、クローンまたはフェッチするにはfetch.fsck.<msg-id>
を設定します。残りのドキュメントでは、簡潔にするために
fsck.*
について説明していますが、対応するreceive.fsck.*
およびfetch.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.<msg-id>
設定を構成することで、エラーを警告に、またはその逆に切り替えることができます。便宜上、fsckはエラー/警告にメッセージIDをプレフィックスします。例えば、"missingEmail: invalid author/committer line - missing email" は、fsck.missingEmail = ignore
を設定することでその問題を隠すことを意味します。一般に、問題のあるオブジェクトが共有する破損の種類を無視するようにリストする代わりに、
fsck.skipList
で問題のある既存のオブジェクトを列挙する方が良いです。後者を行うと、同じ破損の新しいインスタンスが unnoticed になってしまうためです。不明な
fsck.<msg-id>
の値を設定するとfsckが終了しますが、receive.fsck.<msg-id>
およびfetch.fsck.<msg-id>
に対して同じことを行うと、gitは警告を発するだけです。<msg-id>
のサポートされている値については、git-fsck[1] のFsck Messages
セクションを参照してください。 - fsck.skipList
-
致命的ではない方法で破損していることが判明しており、無視すべきオブジェクト名(つまり、1行に省略されていないSHA-1が1つ)のリストへのパス。Git 2.20以降のバージョンでは、コメント(#)、空行、および先頭と末尾の空白は無視されます。古いバージョンでは、1行あたりの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 で使用されるデルタ圧縮アルゴリズムで使用される深さパラメータ。デフォルトは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
-
ゼロ以外の場合、
git gc
が実行されたときに、この制限よりも大きいすべての非クルフトパックが保持されます。これは--keep-largest-pack
と非常によく似ていますが、最大のパックだけでなく、しきい値を満たすすべての非クルフトパックが保持される点が異なります。デフォルトはゼロです。k, m, g の一般的な単位接尾辞がサポートされています。保持されるパックの数が gc.autoPackLimit を超える場合、この設定変数は無視され、ベースパックを除くすべてのパックが再パックされることに注意してください。この後、パックの数は gc.autoPackLimit を下回り、gc.bigPackThreshold は再び尊重されるはずです。
git repack
がスムーズに実行されるために必要な推定メモリ量が利用できず、gc.bigPackThreshold
が設定されていない場合、最大のパックも除外されます(これはgit gc
を--keep-largest-pack
付きで実行するのと同等です)。 - gc.writeCommitGraph
-
trueの場合、git-gc[1] が実行されるときにgcがコミットグラフファイルを書き換えます。
git gc --auto
を使用している場合、ハウスキーピングが必要な場合にコミットグラフが更新されます。デフォルトはtrueです。git-commit-graph[1] を参照してください。 - gc.logExpiry
-
ファイル gc.log が存在する場合、
git gc --auto
は、そのファイルが gc.logExpiry よりも古くない限り、その内容を出力してステータスゼロで終了します。デフォルトは "1.day" です。値の指定方法の詳細についてはgc.pruneExpire
を参照してください。 - gc.packRefs
-
リポジトリで
git pack-refs
を実行すると、HTTPのようなダムトランスポートを介したGitバージョン1.5.1.2以前のバージョンではクローンできなくなります。この変数は、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>に一致するリファレンスにのみ適用されます。
- gc.reflogExpireUnreachable
- gc.<pattern>.reflogExpireUnreachable
-
git reflog expire は、この時間よりも古く、かつ現在の先端から到達不能なreflogエントリを削除します。デフォルトは30日です。"now" の値はすべてのエントリを即座に期限切れにし、"never" は期限切れを完全に抑制します。中央に"<pattern>"(例:"refs/stash")があると、設定は<pattern>に一致するリファレンスにのみ適用されます。
これらのタイプのエントリは、一般的に
git commit --amend
またはgit rebase
の使用結果として作成され、修正またはリベースが行われる前のコミットです。これらの変更は現在のプロジェクトの一部ではないため、ほとんどのユーザーはそれらをより早く期限切れにしたいと考えます。そのため、デフォルトはgc.reflogExpire
よりも積極的になっています。 - gc.recentObjectsHook
-
オブジェクトを削除するかどうかを検討する際に(クルフトパックを生成するか、到達不能なオブジェクトをルーズとして格納する場合)、指定されたコマンドをシェルで実行します。その出力をGitが「最近」と見なすオブジェクトIDとして解釈します。これらのmtimeを「現在」として扱うことで、出力に記載されたオブジェクト(およびその子孫)は、実際の経過時間に関わらず保持されます。
出力には、1行に正確に1つの16進オブジェクトIDが含まれ、他は何も含まれてはなりません。リポジトリで見つからないオブジェクトは無視されます。複数のフックがサポートされていますが、すべて正常に終了する必要があります。そうでない場合、操作(クルフトパックの生成または到達不能なオブジェクトの展開)は停止されます。
- gc.repackFilter
-
再パック時、指定されたフィルタを使用して特定のオブジェクトを別のパックファイルに移動します。git-repack[1] の
--filter=<filter-spec>
オプションを参照してください。 - gc.repackFilterTo
-
再パック時にフィルタを使用する場合、
gc.repackFilter
を参照し、フィルタリングされたオブジェクトを含むパックファイルを作成するために指定された場所が使用されます。警告: 指定された場所は、例えばGitのalternatesメカニズムを使用してアクセス可能である必要があります。そうしないと、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にファイルをテキストとして扱うように強制する場合、CVSクライアントがテキストとして扱うように-k
モードは空白のままにされます。テキスト変換を抑制する場合、ファイルは -kb モードに設定され、クライアントが通常行う改行の変更を抑制します。属性がファイルの種類を決定できない場合、gitcvs.allBinary
が使用されます。gitattributes[5] を参照してください。 - gitcvs.allBinary
-
これは、
gitcvs.usecrlfattr
が正しい -kb モードを解決しない場合に使用されます。trueの場合、解決されていないすべてのファイルは -kb モードでクライアントに送信されます。これにより、クライアントはそれらをバイナリファイルとして扱い、通常行う改行の変更を抑制します。あるいは、「guess」に設定すると、core.autocrlf
と同様に、ファイルの内容を検査してバイナリであるかどうかを判断します。 - gitcvs.dbName
-
git-cvsserver がGitリポジトリから派生したリビジョン情報をキャッシュするために使用するデータベース。正確な意味は使用されるデータベースドライバによって異なり、SQLite(デフォルトのドライバ)の場合、これはファイル名です。変数置換をサポートします(詳細は git-cvsserver[1] を参照)。セミコロン(
;
)を含めることはできません。デフォルト: %Ggitcvs.%m.sqlite - gitcvs.dbDriver
-
使用されるPerl DBIドライバ。ここに利用可能な任意のドライバを指定できますが、動作しない場合があります。git-cvsserverは DBD::SQLite でテスト済みで、DBD::Pg では動作すると報告されていますが、DBD::mysql では動作しないと報告されています。実験的な機能です。二重コロン(
:
)を含めることはできません。デフォルト: SQLite。git-cvsserver[1] を参照してください。 - gitcvs.dbUser, gitcvs.dbPass
-
データベースユーザーとパスワード。SQLiteにはデータベースユーザーやパスワードの概念がないため、
gitcvs.dbDriver
を設定する場合にのみ役立ちます。gitcvs.dbUser は変数置換をサポートします(詳細は git-cvsserver[1] を参照)。 - gitcvs.dbTableNamePrefix
-
データベースのテーブル名プレフィックス。使用されるデータベーステーブルの名前に前置され、1つのデータベースを複数のリポジトリに使用できるようにします。変数置換をサポートします(詳細は 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" があります。署名フォーマットについては gitformat-signature[5] を参照してください。これは選択された
gpg.format
によって異なります。 - gpg.<format>.program
-
選択した署名形式に使用するプログラムをカスタマイズするには、これを使用します。(
gpg.program
とgpg.format
を参照)gpg.program
は引き続きgpg.openpgp.program
のレガシーな同義語として使用できます。gpg.x509.program
のデフォルト値は "gpgsm"、gpg.ssh.program
のデフォルト値は "ssh-keygen" です。 - gpg.minTrustLevel
-
署名検証の最小信頼レベルを指定します。このオプションが設定されていない場合、マージ操作の署名検証には、少なくとも
marginal
な信頼を持つキーが必要です。署名検証を実行する他の操作には、少なくともundefined
な信頼を持つキーが必要です。このオプションを設定すると、すべての操作に必要な信頼レベルがオーバーライドされます。重要度順に昇順でサポートされる値は次のとおりです。-
undefined
-
never
-
marginal
-
fully
-
ultimate
-
- gpg.ssh.defaultKeyCommand
-
user.signingkeyが設定されておらず、ssh署名が要求された場合にこのコマンドが実行されます。正常終了時には、出力の最初の行に「key::」をプレフィックスとする有効なssh公開鍵が出力されることが期待されます。これにより、user.signingKeyを静的に設定することが非現実的な場合に、スクリプトが適切な公開鍵を動的に検索できるようになります。例えば、鍵やSSH証明書が頻繁に更新される場合や、正しい鍵の選択がgitに未知の外部要因に依存する場合などです。
- gpg.ssh.allowedSignersFile
-
信頼するssh公開鍵を含むファイル。ファイルは、ssh公開鍵の前にプリンシパルの行が1つ以上続く形式で構成されます。例:
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鍵を既に処理している自動化によってグローバルな場所で生成されます。
署名付きコミットのみを許可するリポジトリは、ファイルをワーキングツリーのトップレベルからの相対パスを使用してリポジトリ自体に保存できます。これにより、既に有効な鍵を持つコミッターだけがキーリングに鍵を追加または変更できます。
OpensSSH 8.8以降、このファイルでは valid-after & valid-before オプションを使用してキーの有効期間を指定できます。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] で選択されたコミットの履歴コンテキストを何日分の範囲で表示するかを指定します。この変数がゼロに設定されている場合、履歴全体が表示されます。 - 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, "false", "off", "no", "show": 提案されたコマンドを表示する(デフォルト)。
-
1, "true", "on", "yes", "immediate": 提案されたコマンドをすぐに実行する。
-
1より大きい正の数: 指定されたデシ秒(0.1秒)後に提案されたコマンドを実行する。
-
"never": 提案されたコマンドを一切実行しない、または表示しない。
-
"prompt": 提案を表示し、コマンドを実行する確認を促す。
-
- help.htmlPath
-
HTMLドキュメントが置かれているパスを指定します。ファイルシステムパスとURLがサポートされています。ヘルプが web 形式で表示される場合、HTMLページにはこのパスがプレフィックスとして付加されます。これはGitインストールのドキュメントパスにデフォルト設定されます。
- http.proxy
-
通常、http_proxy、https_proxy、および all_proxy 環境変数(
curl(1)
を参照)を使用して設定されるHTTPプロキシをオーバーライドします。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 Basic認証 -
digest
- HTTP Digest認証。これにより、パスワードがプレーンテキストでプロキシに送信されるのを防ぎます -
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認証が使用されます。オプションの値は、ヘルパーから要求されるスキームを決定します。可能な値は次のとおりです。-
basic
- ヘルパーにBasic認証を要求します。 -
auto
- ヘルパーに適切なスキームを選択させます。 -
none
- プロアクティブ認証を無効にします。
Basic認証が選択された場合、プレーンテキストの資格情報が意図せず公開される可能性があるため、この設定では常にTLSを使用する必要があることに注意してください。
-
- http.delegation
-
GSSAPI資格情報委譲を制御します。委譲はlibcurlバージョン7.21.7以降ではデフォルトで無効になっています。ユーザー資格情報に関してサーバーが何を委譲できるかをサーバーに伝えるためにパラメータを設定します。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
(s) にリダイレクトします。2番目の形式は、そのHOST:PORT
の組み合わせに関する以前のすべての設定値をクリアします。システム設定から継承されたすべての設定を簡単に上書きできるように、空の値を設定すると、すべての解決情報が空のリストにリセットされます。 -
- http.sslVersion
-
SSL接続をネゴシエートする際に使用するSSLバージョン。デフォルトを強制したい場合。利用可能なバージョンとデフォルトバージョンは、libcurlがNSSまたはOpenSSLに対してビルドされたかどうか、および使用中の暗号ライブラリの特定の構成に依存します。内部的には CURLOPT_SSL_VERSION オプションを設定します。このオプションの形式とサポートされているsslバージョンに関する詳細については、libcurlのドキュメントを参照してください。現在、このオプションの可能な値は次のとおりです。
-
sslv2
-
sslv3
-
tlsv1
-
tlsv1.0
-
tlsv1.1
-
tlsv1.2
-
tlsv1.3
GIT_SSL_VERSION
環境変数で上書きできます。gitがlibcurlのデフォルトのsslバージョンを使用し、明示的な http.sslversion オプションを無視するように強制するには、GIT_SSL_VERSION
を空の文字列に設定します。 -
- http.sslCipherList
-
SSL接続をネゴシエートする際に使用するSSL暗号のリスト。利用可能な暗号は、libcurlがNSSまたはOpenSSLに対してビルドされたかどうか、および使用中の暗号ライブラリの特定の構成に依存します。内部的には CURLOPT_SSL_CIPHER_LIST オプションを設定します。このリストの形式の詳細については、libcurlのドキュメントを参照してください。
GIT_SSL_CIPHER_LIST
環境変数で上書きできます。gitがlibcurlのデフォルトの暗号リストを使用し、明示的な http.sslCipherList オプションを無視するように強制するには、GIT_SSL_CIPHER_LIST
を空の文字列に設定します。 - http.sslVerify
-
HTTPS経由でフェッチまたはプッシュする際にSSL証明書を検証するかどうか。デフォルトはtrueです。
GIT_SSL_NO_VERIFY
環境変数で上書きできます。 - http.sslCert
-
HTTPS経由でフェッチまたはプッシュする際にSSL証明書を含むファイル。
GIT_SSL_CERT
環境変数で上書きできます。 - http.sslKey
-
HTTPS経由でフェッチまたはプッシュする際にSSL秘密鍵を含むファイル。
GIT_SSL_KEY
環境変数で上書きできます。 - http.sslCertPasswordProtected
-
SSL証明書のGitのパスワードプロンプトを有効にします。そうしないと、OpenSSLが証明書または秘密鍵が暗号化されている場合に、ユーザーに何度もプロンプトを表示する可能性があります。
GIT_SSL_CERT_PASSWORD_PROTECTED
環境変数で上書きできます。 - http.sslCAInfo
-
HTTPS経由でフェッチまたはプッシュする際に、ピアを検証するための証明書を含むファイル。
GIT_SSL_CAINFO
環境変数で上書きできます。 - http.sslCAPath
-
HTTPS経由でフェッチまたはプッシュする際に、ピアを検証するためのCA証明書を含むファイルがあるパス。
GIT_SSL_CAPATH
環境変数で上書きできます。 - http.sslBackend
-
使用するSSLバックエンドの名前(例: "openssl" または "schannel")。cURLが実行時にSSLバックエンドを選択するサポートを欠いている場合、このオプションは無視されます。
- http.sslCertType
-
HTTPS経由でフェッチまたはプッシュする際に使用されるクライアント証明書のタイプ。openssl または gnutls バックエンドを使用する場合、"PEM"、"DER" がサポートされます。"P12" は "openssl"、"schannel"、"securetransport"、および gnutls 8.11+ でサポートされます。libcurl の
CURLOPT_SSLCERTTYPE
も参照してください。GIT_SSL_CERT_TYPE
環境変数で上書きできます。 - http.sslKeyType
-
HTTPS経由でフェッチまたはプッシュする際に使用されるクライアント秘密鍵のタイプ(例:"PEM"、"DER"、または"ENG")。"openssl" バックエンドを使用する場合にのみ適用されます。"DER" はopensslではサポートされていません。sslCert オプションでPKCS#11 URLを使用してPKCS#11トークンで認証する場合に特に便利です。libcurlの
CURLOPT_SSLKEYTYPE
も参照してください。GIT_SSL_KEY_TYPE
環境変数で上書きできます。 - http.schannelCheckRevoke
-
http.sslBackend が "schannel" に設定されている場合に、cURLで証明書失効チェックを強制または無効にするために使用されます。設定されていない場合、デフォルトは
true
です。Gitが常にエラーを出力し、そのメッセージが証明書の失効ステータスのチェックに関する場合にのみ、これを無効にする必要があります。cURLが実行時に関連するSSLオプションを設定するサポートを欠いている場合、このオプションは無視されます。 - http.schannelUseSSLCAInfo
-
cURL v7.60.0以降、Secure Channelバックエンドは
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
-
スマートHTTPトランスポートがリモートシステムにデータをPOSTする際に使用するバッファの最大サイズ(バイト単位)。このバッファサイズより大きなリクエストの場合、大規模なパックファイルをローカルに作成することを避けるためにHTTP/1.1およびTransfer-Encoding: chunkedが使用されます。デフォルトは1 MiBで、ほとんどのリクエストには十分です。
この制限を増やすことは、チャンク転送エンコーディングを無効にする場合にのみ有効であり、したがって、リモートサーバーまたはプロキシがHTTP/1.0のみをサポートしているか、HTTP標準に準拠していない場合にのみ使用すべきであることに注意してください。これを増やすことは、一般的にほとんどのプッシュ問題に対する有効な解決策ではありませんが、小さなプッシュの場合でもバッファ全体が割り当てられるため、メモリ消費を大幅に増加させる可能性があります。
- http.lowSpeedLimit, http.lowSpeedTime
-
HTTP転送速度(バイト/秒)が http.lowSpeedLimit より遅い状態が http.lowSpeedTime 秒より長く続くと、転送は中止されます。
GIT_HTTP_LOW_SPEED_LIMIT
およびGIT_HTTP_LOW_SPEED_TIME
環境変数で上書きできます。 - http.noEPSV
-
curlによるEPSV ftpコマンドの使用を無効にするブール値。これは、EPSVモードをサポートしていない一部の「劣悪な」ftpサーバーで役立つ場合があります。
GIT_CURL_FTP_NO_EPSV
環境変数で上書きできます。デフォルトはfalse(curlはEPSVを使用します)。 - http.userAgent
-
HTTPサーバーに提示されるHTTP USER_AGENT文字列。デフォルト値は、git/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はパッチをプレーンテキスト、フォーマット固定のメールとして送信します。デフォルトは`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]ドキュメントの「CONFIGURATION FILE」セクション、特に「Includes」および「Conditional Includes」サブセクションを参照してください。
- index.recordEndOfIndexEntries
-
インデックスファイルに「End Of Index Entry」セクションを含めるかどうかを指定します。これによりマルチプロセッサマシンでのインデックスロード時間は短縮されますが、Gitバージョン2.20より前のバージョンでインデックスを読み込むと「ignoring EOIE extension」というメッセージが表示されます。`index.threads`が明示的に有効になっている場合はtrue、それ以外の場合はfalseがデフォルトです。
- index.recordOffsetTable
-
インデックスファイルに「Index Entry Offset Table」セクションを含めるかどうかを指定します。これによりマルチプロセッサマシンでのインデックスロード時間は短縮されますが、Gitバージョン2.20より前のバージョンでインデックスを読み込むと「ignoring IEOT extension」というメッセージが表示されます。`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`を有効にすると、Gitクライアント2.13.0より前のバージョンはインデックスの解析を拒否し、Gitクライアント2.40.0より前のバージョンは`git fsck`中にエラーを報告します。
-
init.templateDir
-
テンプレートがコピーされるディレクトリを指定します。(git-init[1]の「TEMPLATE DIRECTORY」セクションを参照してください。)
-
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]によって起動されたウェブサーバーはローカル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文字の入力を単一のキー(つまり、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`コマンドラインオプションに似ていますが、設定オプションは`--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
-
補強するmailmapファイルの場所です。リポジトリのルートにあるデフォルトのmailmapが最初にロードされ、次にこの変数によって指定されたmailmapファイルがロードされます。mailmapファイルの場所は、リポジトリのサブディレクトリ内、またはリポジトリ自体の外部にある場合があります。git-shortlog[1]およびgit-blame[1]を参照してください。
- mailmap.blob
-
`mailmap.file`と同様ですが、値をリポジトリ内のブロブへの参照と見なします。`mailmap.file`と`mailmap.blob`の両方が指定されている場合、両方が解析され、`mailmap.file`のエントリが優先されます。ベアリポジトリでは、デフォルトで`HEAD:.mailmap`となります。非ベアリポジトリでは、デフォルトで空になります。
- maintenance.auto
-
このブール型設定オプションは、一部のコマンドが通常の作業の後に`git maintenance run --auto`を実行するかどうかを制御します。デフォルトは`true`です。
- maintenance.autoDetach
-
多くのGitコマンドは、リポジトリにデータを書き込んだ後に自動メンテナンスをトリガーします。このブール型設定オプションは、この自動メンテナンスがフォアグラウンドで行われるか、それともメンテナンスプロセスがデタッチされてバックグラウンドで実行され続けるかを制御します。
設定されていない場合、`gc.autoDetach`の値がフォールバックとして使用されます。両方が設定されていない場合、デフォルトは`true`であり、メンテナンスプロセスはデタッチされます。
- maintenance.strategy
-
この文字列型設定オプションは、バックグラウンドメンテナンスの推奨スケジュールをいくつか指定する方法を提供します。これは、`--task=<task>`引数が提供されない限り、`git maintenance run --schedule=X`コマンド中にどのタスクが実行されるかにのみ影響します。さらに、`maintenance.<task>.schedule`設定値が設定されている場合、その値が`maintenance.strategy`によって提供される値の代わりに使用されます。可能な戦略文字列は次のとおりです。
-
none
: このデフォルト設定は、どのスケジュールでもタスクが実行されないことを意味します。 -
incremental
: この設定は、データを削除しない小さなメンテナンスアクティビティを実行するように最適化します。これは`gc`タスクをスケジュールしませんが、`prefetch`および`commit-graph`タスクを1時間ごとに、`loose-objects`および`incremental-repack`タスクを毎日、`pack-refs`タスクを毎週実行します。
-
- maintenance.<task>.enabled
-
このブール型設定オプションは、`git maintenance run`に`--task`オプションが指定されていない場合に、`<task>`という名前のメンテナンス作業を実行するかどうかを制御します。`--task`オプションが存在する場合、これらの設定値は無視されます。デフォルトでは、`maintenance.gc.enabled`のみが`true`です。
- maintenance.<task>.schedule
-
この設定オプションは、指定された`<task>`が`git maintenance run --schedule=<frequency>`コマンド中に実行されるかどうかを制御します。値は"hourly"、"daily"、または"weekly"のいずれかである必要があります。
- maintenance.commit-graph.auto
-
この整数型設定オプションは、`git maintenance run --auto`の一部として`commit-graph`タスクをどのくらいの頻度で実行すべきかを制御します。ゼロの場合、`commit-graph`タスクは`--auto`オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、コミットグラフファイルにない到達可能なコミットの数が`maintenance.commit-graph.auto`の値以上になったときにコマンドが実行されるべきであることを意味します。デフォルト値は100です。
- maintenance.loose-objects.auto
-
この整数型設定オプションは、`git maintenance run --auto`の一部として`loose-objects`タスクをどのくらいの頻度で実行すべきかを制御します。ゼロの場合、`loose-objects`タスクは`--auto`オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、ルーズオブジェクトの数が`maintenance.loose-objects.auto`の値以上になったときにコマンドが実行されるべきであることを意味します。デフォルト値は100です。
- maintenance.incremental-repack.auto
-
この整数型設定オプションは、`git maintenance run --auto`の一部として`incremental-repack`タスクをどのくらいの頻度で実行すべきかを制御します。ゼロの場合、`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"スタイルは、元のテキストが除外されるためと、両側で一致する行のサブセットがある場合にそれらが競合領域から除外されるため、diff3よりも小さな競合領域を生成する傾向があります。もう1つの代替スタイルである"zdiff3"はdiff3に似ていますが、競合領域の開始または終了付近に一致する行がある場合に、その一致する行を競合領域から削除します。
- merge.defaultToUpstream
-
`merge`がコミット引数なしで呼び出された場合、現在のブランチ用に設定されたアップストリームブランチを、それらのリモート追跡ブランチに保存されている最後の観測値を使用してマージします。`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
-
リポジトリ内のファイルの正規表現が時間とともに変化したこと(例: 以前のコミットではCRLF行末でテキストファイルを記録していたが、最近のコミットではLF行末を使用している)をGitに伝えます。そのようなリポジトリでは、3方向コンテンツマージが必要な各ファイルについて、Gitは不必要な競合を減らすためにマージを実行する前にコミットに記録されたデータを正規形式に変換できます。詳細については、gitattributes[5]の「Merging branches with differing checkin/checkout attributes」セクションを参照してください。
- merge.stat
-
マージの最後に、ORIG_HEADとマージ結果間のdiffstatを表示するかどうか。デフォルトは`true`です。
- merge.autoStash
-
`true`に設定されている場合、操作開始前に一時的なスタッシュエントリを自動的に作成し、操作終了後にそれを適用します。これは、ダーティな作業ツリーでマージを実行できることを意味します。ただし、注意して使用してください。成功したマージ後の最終的なスタッシュ適用は、単純ではない競合を引き起こす可能性があります。このオプションは、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`のいずれか)の分割ウィンドウレイアウトを設定します。`git mergetool`を`--tool=<variant>`で起動した場合(または`merge.tool`が`<variant>`として設定されている場合は`--tool`なしで)、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
-
`true`に設定すると、デフォルトで`merge.guitool`を使用します(`--gui`引数を指定するのと同等)。`auto`に設定すると、`DISPLAY`環境変数の値の有無に応じて`merge.guitool`または`merge.tool`を選択します。デフォルトは`false`で、`merge.guitool`を使用するには`--gui`引数を明示的に指定する必要があります。
-
notes.mergeStrategy
-
ノートの競合を解決する際にデフォルトで選択するマージ戦略です。`manual`、`ours`、`theirs`、`union`、または`cat_sort_uniq`のいずれかである必要があります。デフォルトは`manual`です。各戦略の詳細については、git-notes[1]の「NOTES MERGE STRATEGIES」セクションを参照してください。
この設定は、git-notes[1]に`--strategy`オプションを渡すことで上書きできます。
-
notes.<name>.mergeStrategy
-
`refs/notes/<name>`へのノートマージを行う際に選択するマージ戦略です。これはより一般的な`notes.mergeStrategy`を上書きします。利用可能な戦略の詳細については、git-notes[1]の「NOTES MERGE STRATEGIES」セクションを参照してください。
-
notes.displayRef
-
`git log`系のコマンドでコミットメッセージを表示する際に、`core.notesRef`または`GIT_NOTES_REF`で設定されたデフォルトの参照に加えて、どの参照(globまたは複数回指定された場合は複数の参照)からノートを読み取るか。
この設定は、コロンで区切られた参照またはglobのリストである`GIT_NOTES_DISPLAY_REF`環境変数によって上書きできます。
存在しない参照に対しては警告が発行されますが、どの参照とも一致しないglobは黙って無視されます。
この設定は、git-log[1]系のコマンドの`--no-notes`オプション、またはそれらのコマンドが受け入れる`--notes=<ref>`オプションによって無効にできます。
`core.notesRef`の実効値(`GIT_NOTES_REF`によって上書きされる可能性あり)も、表示される参照のリストに暗黙的に追加されます。
-
notes.rewrite.<command>
-
<command>(現在のところ`amend`または`rebase`)でコミットを書き換える際、この変数が`false`の場合、Gitは元のコミットから書き換えられたコミットへノートをコピーしません。デフォルトは`true`です。以下の`notes.rewriteRef`も参照してください。
この設定は、コロンで区切られた参照またはglobのリストである`GIT_NOTES_REWRITE_REF`環境変数によって上書きできます。
-
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
-
デフォルトのパックインデックスバージョンを指定します。有効な値は、Gitバージョン1.5.2以前で使用されるレガシーパックインデックス用の1と、4GBを超えるパックの機能と破損したパックの再パックに対する適切な保護を備えた新しいパックインデックス用の2です。バージョン2がデフォルトです。対応するパックが2GBを超える場合は、バージョン2が強制され、この設定オプションは無視されることに注意してください。
バージョン2の`*.idx`ファイルを理解しない古いGitを使用している場合、非ネイティブプロトコル(例: "http")を介してクローンまたはフェッチすると、`*.pack`ファイルと対応する`*.idx`ファイルの両方を相手側からコピーするため、古いバージョンのGitではアクセスできないリポジトリになる可能性があります。ただし、`*.pack`ファイルが2GB未満の場合、git-index-pack[1]を`*.pack`ファイルに対して使用して、`*.idx`ファイルを再生成できます。
- pack.packSizeLimit
-
パックの最大サイズです。この設定は再パック時にファイルへのパックにのみ影響し、git://プロトコルは影響を受けません。git-repack[1]の`--max-pack-size`オプションによって上書きできます。この制限に達すると、複数のパックファイルが作成されます。
このオプションはほとんど役に立たず、ディスク上の総サイズが増加したり(Gitはパック間でデルタを保存しないため)、実行時パフォーマンスが低下したりする可能性があることに注意してください(複数のパック内のオブジェクト検索は単一のパックよりも遅く、到達可能性ビットマップのような最適化は複数のパックに対応できません)。
より小さなパックファイルを使用してGitをアクティブに実行する必要がある場合(たとえば、ファイルシステムが大きなファイルをサポートしていないため)、このオプションが役立つかもしれません。しかし、限られたサイズをサポートするメディア(たとえば、リポジトリ全体を保存できないリムーバブルメディア)を介してパックファイルを転送することが目的の場合、単一の大きなパックファイルを作成し、汎用的なマルチボリュームアーカイブツール(例: Unixの`split`)を使用して分割する方が良いでしょう。
許可される最小サイズは1 MiBに制限されています。デフォルトは無制限です。k、m、またはgの一般的な単位接尾辞がサポートされています。
- pack.useBitmaps
-
`true`の場合、Gitはstdoutへのパック時(例: フェッチのサーバー側で)に、利用可能な場合はパックビットマップを使用します。デフォルトは`true`です。パックビットマップのデバッグ中である場合を除き、通常これをオフにする必要はありません。
- pack.useBitmapBoundaryTraversal
-
`true`の場合、Gitはビットマップを使用した到達可能性クエリを計算するための実験的なアルゴリズムを使用します。すべての否定された先端に対して完全なビットマップを構築し、それらをOR演算で結合する代わりに、既存のビットマップを持つ否定された先端を加算的に考慮し(つまり、存在する場合は結果にOR演算で結合し、それ以外の場合は無視する)、境界でビットマップを構築します。
このアルゴリズムを使用する場合、Gitは特定の興味のないコミットに属するツリーを開放しない結果として、多すぎるオブジェクトを含める可能性があります。この不正確さは、非ビットマップのトラバースアルゴリズムと一致します。
多くの場合、これは正確なアルゴリズムよりも高速化をもたらす可能性があります。特に、クエリの否定側のビットマップカバレッジが低い場合に顕著です。
- pack.useSparse
-
`true`の場合、--revsオプションが存在するときに、gitはデフォルトでgit pack-objectsで--sparseオプションを使用します。このアルゴリズムは、新しいオブジェクトを導入するパスに現れるツリーのみを辿ります。小さな変更を送信するためのパックを計算する際に、著しいパフォーマンス上の利点をもたらすことができます。ただし、含まれるコミットが特定の種類の直接リネームを含んでいる場合、余分なオブジェクトがパックファイルに追加される可能性があります。デフォルトは`true`です。
- pack.preferBitmapTips
-
ビットマップを受け取るコミットを選択する際、「選択ウィンドウ」内の他のどのコミットよりも、この設定の任意の値のサフィックスである参照の先端にあるコミットを優先します。
この設定を`refs/foo`に設定しても、`refs/foo/bar`と`refs/foo/baz`の先端にあるコミットが必ず選択されるわけではないことに注意してください。これは、コミットがビットマップのために可変長のウィンドウの連続から選択されるためです。
この設定の任意の値のサフィックスである参照の先端にあるコミットがウィンドウ内で見つかった場合、そのウィンドウ内の他のどのコミットよりも直ちに優先されます。
- pack.writeBitmaps (deprecated)
-
これは`repack.writeBitmaps`の非推奨の同義語です。
- pack.writeBitmapHashCache
-
`true`の場合、Gitはビットマップインデックスに「ハッシュキャッシュ」セクションを含めます(書き込まれる場合)。このキャッシュはGitのデルタヒューリスティクスに供給するために使用でき、ビットマップ化されたオブジェクトとビットマップ化されていないオブジェクト間のデルタを改善する可能性があります(例: 古いビットマップ化されたパックと前回のgc以降にプッシュされたオブジェクト間でフェッチを提供する場合)。欠点としては、オブジェクトあたり4バイトのディスク容量を消費することです。デフォルトは`true`です。
マルチパック到達可能性ビットマップを書き込む際、新しい名前ハッシュは計算されません。代わりに、既存のビットマップに格納されている名前ハッシュは、新しいビットマップを書き込む際に適切な場所に順列化されます。
- pack.writeBitmapLookupTable
-
`true`の場合、Gitはビットマップインデックスに「ルックアップテーブル」セクションを含めます(書き込まれる場合)。このテーブルは、個々のビットマップの読み込みを可能な限り遅延させるために使用されます。これは、比較的大規模なビットマップインデックスを持つリポジトリで有益となる可能性があります。デフォルトは`false`です。
- pack.readReverseIndex
-
`true`の場合、gitは利用可能な`.rev`ファイルを読み取ります(参照: gitformat-pack[5])。`false`の場合、逆引きインデックスはゼロから生成され、メモリに保存されます。デフォルトは`true`です。
- pack.writeReverseIndex
-
`true`の場合、gitはgit-fast-import[1]とバルクチェックインメカニズムを除くすべての場所で、書き込む新しいパックファイルごとに対応する`.rev`ファイル(参照: gitformat-pack[5])を書き込みます。デフォルトは`true`です。
- pager.<cmd>
-
値がブール値の場合、TTYに書き込む際の特定のGitサブコマンドの出力のページ送りをオンまたはオフにします。それ以外の場合、`pager.<cmd>`の値で指定されたページャを使用してサブコマンドのページ送りをオンにします。コマンドラインで`--paginate`または`--no-pager`が指定されている場合、このオプションよりも優先されます。すべてのコマンドのページ送りを無効にするには、`core.pager`または`GIT_PAGER`を`cat`に設定します。
- pretty.<name>
-
git-log[1]で指定されている`--pretty=`フォーマット文字列のエイリアスです。ここで定義されたエイリアスは、組み込みのprettyフォーマットと同様に使用できます。たとえば、`git config pretty.changelog "format:* %H %s"`を実行すると、`git log --pretty=changelog`の呼び出しは`git log "--pretty=format:* %H %s"`の実行と同等になります。組み込みフォーマットと同じ名前のエイリアスは黙って無視されることに注意してください。
- promisor.quiet
-
"true"に設定されている場合、部分クローン用の追加オブジェクトをフェッチする際に`--quiet`を仮定します。
- promisor.advertise
-
"true"に設定されている場合、サーバーは「promisor-remote」機能(gitprotocol-v2[5]参照)を使用して、使用しているプロミサーリモートを広告します。デフォルトは"false"であり、「promisor-remote」機能は広告されません。
- promisor.acceptFromServer
-
"all"に設定されている場合、クライアントはサーバーが「promisor-remote」機能を使用して広告する可能性のあるすべてのプロミサーリモートを受け入れます。"knownName"に設定されている場合、クライアントはすでにクライアントに設定されており、クライアントによって広告されたものと同じ名前を持つプロミサーリモートを受け入れます。これはあまり安全ではありませんが、サーバーとクライアントが名前とURLを切り替えないと信頼されている企業環境で使用できます。"knownUrl"に設定されている場合、クライアントは、クライアントに設定されている名前とURLがサーバーによって広告された名前とURLの両方と同じであるプロミサーリモートを受け入れます。これは"all"や"knownName"よりも安全であるため、可能であればこれらのオプションの代わりに使用すべきです。デフォルトは"none"であり、サーバーによって広告されたプロミサーリモートは受け入れられません。プロミサーリモートを受け入れることにより、クライアントは、サーバーがこのプロミサーリモートから遅延フェッチ可能なオブジェクトをクライアントからの「fetch」および「clone」要求への応答から省略する可能性があることに同意します。gitprotocol-v2[5]を参照してください。
- protocol.allow
-
設定されている場合、明示的にポリシーを持たないすべてのプロトコル(`protocol.<name>.allow`)に対して、ユーザー定義のデフォルトポリシーを提供します。デフォルトでは、未設定の場合、既知の安全なプロトコル(http, https, git, ssh)は`always`、既知の危険なプロトコル(ext)は`never`、その他のすべてのプロトコル(fileを含む)は`user`のデフォルトポリシーを持ちます。サポートされているポリシーは次のとおりです。
-
always
- プロトコルは常に使用できます。 -
never
- プロトコルは決して使用できません。 -
user
- プロトコルは、`GIT_PROTOCOL_FROM_USER`が未設定であるか、値が1である場合にのみ使用できます。このポリシーは、プロトコルをユーザーが直接使用できるようにしたいが、ユーザー入力なしでクローン/フェッチ/プッシュコマンドを実行するコマンド(例: 再帰的なサブモジュール初期化)によって使用されたくない場合に適用すべきです。
-
- protocol.<name>.allow
-
クローン/フェッチ/プッシュコマンドでプロトコル`<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
オプションを渡します (詳細は git-rebase[1] を参照)。値が
interactive
(または単に i) の場合、リベースはインタラクティブモードで実行されます。注意: これは潜在的に危険な操作です。その影響を理解していない限り、使用しないでください (詳細は git-rebase[1] を参照)。
- pull.octopus
-
一度に複数のブランチをプルする際に使用するデフォルトのマージ戦略です。
- pull.twohead
-
単一のブランチをプルする際に使用するデフォルトのマージ戦略です。
- push.autoSetupRemote
-
"true"に設定されている場合、現在のブランチにアップストリーム追跡が存在しない場合に、デフォルトプッシュで`--set-upstream`を仮定します。このオプションは`push.default`オプションのsimple、upstream、currentに影響します。新しいブランチをデフォルトリモートにプッシュし(push.default=currentの動作のように)、かつアップストリーム追跡も設定したい場合に便利です。このオプションから最も恩恵を受ける可能性が高いワークフローは、すべてのブランチがリモートで同じ名前を持つと期待されるシンプルな中央ワークフローです。
- push.default
-
リフスペックが与えられていない場合(コマンドライン、設定、またはその他から)、`git push`が取るべきアクションを定義します。異なる値は特定のワークフローに適しています。たとえば、純粋な中央ワークフロー(つまり、フェッチ元がプッシュ先と同じ)では、`upstream`が望ましいでしょう。可能な値は次のとおりです。
-
nothing
- リフスペックが指定されない限り、何もプッシュしません(エラー)。これは主に、常に明示的であることで間違いを避けたい人のためのものです。 -
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 値は、git-push[1] に
--signed
が渡されたかのように、すべてのプッシュに GPG 署名を行います。文字列 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
-
"check"、"on-demand"、"only"、または "no" に設定でき、「push --recurse-submodules」と同じ動作をします。設定されていない場合、デフォルトでは no が使用されますが、submodule.recurse が設定されている場合 (この場合、true 値は on-demand を意味します) は除きます。
- push.useForceIfIncludes
-
"true" に設定すると、コマンドラインで git-push[1] のオプションとして
--force-if-includes
を指定するのと同等です。プッシュ時に--no-force-if-includes
を追加すると、この設定は上書きされます。 - push.negotiate
-
"true" に設定すると、クライアントとサーバーが共通のコミットを見つけようとするネゴシエーションのラウンドによって送信されるパックファイルのサイズを減らそうとします。「false」の場合、Git は共通のコミットを見つけるためにサーバーの参照アドバタイズメントのみに依存します。
- push.useBitmaps
-
"false" に設定すると、
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 に設定すると、操作が始まる前に一時的なスタッシュエントリが自動的に作成され、操作終了後に適用されます。これにより、ダーティなワークツリーでリベースを実行できます。ただし、注意して使用してください。リベースが成功した後の最終的なスタッシュの適用は、些細ではない競合を引き起こす可能性があります。このオプションは、git-rebase[1] の
--no-autostash
および--autostash
オプションで上書きできます。デフォルトは false です。 - rebase.updateRefs
-
true に設定すると、デフォルトで
--update-refs
オプションが有効になります。 - rebase.missingCommitsCheck
-
"warn" に設定すると、git rebase -i は一部のコミットが削除された場合 (例: 行が削除された場合) に警告を表示しますが、リベースは続行されます。"error" に設定すると、以前の警告を表示し、リベースを停止します。この後、エラーを修正するために git rebase --edit-todo を使用できます。"ignore" に設定すると、チェックは行われません。警告やエラーなしでコミットをドロップするには、todo リストで
drop
コマンドを使用します。デフォルトは "ignore" です。 - rebase.instructionFormat
-
git-log[1] で指定されたフォーマット文字列で、インタラクティブなリベース中の todo リストに使用されます。このフォーマットには、自動的にコミットハッシュが前に付加されます。
- rebase.abbreviateCommands
-
true に設定すると、
git rebase
は todo リストで省略されたコマンド名を使用し、次のような結果になります。p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...
代わりに
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...
デフォルトは false です。
- rebase.rescheduleFailedExec
-
失敗した
exec
コマンドを自動的に再スケジュールします。これはインタラクティブモード (または--exec
オプションが提供された場合) でのみ意味があります。これは--reschedule-failed-exec
オプションを指定するのと同じです。 - rebase.forkPoint
-
false に設定すると、デフォルトで
--no-fork-point
オプションが設定されます。 - rebase.rebaseMerges
-
デフォルトで
--rebase-merges
オプションを設定するかどうか、およびその方法。rebase-cousins
、no-rebase-cousins
、または真偽値にすることができます。true またはno-rebase-cousins
に設定することは--rebase-merges=no-rebase-cousins
と同等であり、rebase-cousins
に設定することは--rebase-merges=rebase-cousins
と同等であり、false に設定することは--no-rebase-merges
と同等です。コマンドラインで--rebase-merges
を引数ありまたはなしで渡すと、rebase.rebaseMerges
設定が上書きされます。 - 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 からデータを受信し、ref を更新した後、「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-pack
がこのフェーズでreceive.keepAlive
秒間データを送信しないと、短いキープアライブパケットを送信します。デフォルトは 5 秒です。完全にキープアライブを無効にするには 0 に設定します。 - receive.unpackLimit
-
プッシュで受信したオブジェクトの数がこの制限未満の場合、オブジェクトはルーズオブジェクトファイルに展開されます。ただし、受信オブジェクトの数がこの制限以上の場合、不足しているデルタベースを追加した後、受信したパックはパックとして保存されます。プッシュからのパックを保存すると、特に遅いファイルシステムでプッシュ操作がより速く完了する可能性があります。設定されていない場合、
transfer.unpackLimit
の値が代わりに使用されます。 - receive.maxInputSize
-
受信するパックストリームのサイズがこの制限よりも大きい場合、git-receive-pack はパックファイルを受け入れずにエラー終了します。設定されていないか 0 に設定されている場合、サイズは無制限です。
- receive.denyDeletes
-
true に設定すると、git-receive-pack は参照を削除する参照更新を拒否します。これにより、プッシュによるそのような参照の削除を防ぐことができます。
- receive.denyDeleteCurrent
-
true に設定すると、git-receive-pack は、非ベアリポジトリの現在チェックアウトされているブランチを削除する参照更新を拒否します。
- receive.denyCurrentBranch
-
true または "refuse" に設定すると、git-receive-pack は、非ベアリポジトリの現在チェックアウトされているブランチへの参照更新を拒否します。このようなプッシュは、HEAD がインデックスおよびワーキングツリーと同期しなくなる可能性があるため、危険です。"warn" に設定すると、そのようなプッシュの警告を stderr に出力しますが、プッシュは続行されます。false または "ignore" に設定すると、メッセージなしでそのようなプッシュを許可します。デフォルトは "refuse" です。
もう1つのオプションは「updateInstead」で、現在のブランチにプッシュする場合にワーキングツリーを更新します。このオプションは、一方がインタラクティブなsshで簡単にアクセスできない場合(例: ライブウェブサイト、そのためワーキングディレクトリがクリーンである必要性)にワーキングディレクトリを同期するために意図されています。このモードは、異なるオペレーティングシステムでコードをテストおよび修正するためにVM内で開発する際にも役立ちます。
デフォルトでは、「updateInstead」はワーキングツリーまたはインデックスがHEADと異なる場合、プッシュを拒否しますが、
push-to-checkout
フックを使用してこれをカスタマイズできます。githooks[5] を参照してください。 - receive.denyNonFastForwards
-
true に設定すると、git-receive-pack はファストフォワードではない参照更新を拒否します。プッシュが強制された場合でも、プッシュによるそのような更新を防ぐためにこれを使用します。この設定変数は、共有リポジトリを初期化するときに設定されます。
- receive.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、receive-pack
にのみ適用されます (したがって、プッシュには影響しますが、フェッチには影響しません)。git push
による隠し参照の更新または削除の試みは拒否されます。 - 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 からデータを受信し、参照を更新した後、git-update-server-info を実行します。
- receive.shallowUpdate
-
true に設定すると、新しいリファレンスが新しいシャロールートを必要とする場合に .git/shallow が更新されることがあります。そうでない場合、それらのリファレンスは拒否されます。
- reftable.blockSize
-
reftable バックエンドがブロックを書き込む際に使用するバイト単位のサイズ。ブロックサイズはライターによって決定され、2 の累乗である必要はありません。ブロックサイズは、参照がブロックをまたがることができないため、リポジトリで使用される最長の参照名またはログエントリよりも大きくする必要があります。
仮想メモリシステムまたはファイルシステムに優しい2の累乗(4KBや8KBなど)が推奨されます。大きなサイズ(64KB)はより良い圧縮率をもたらす可能性がありますが、アクセス時のリーダーによるコストが増加する可能性があります。
最大のブロックサイズは
16777215
バイト (15.99 MiB) です。デフォルト値は4096
バイト (4KB) です。0
の値はデフォルト値を使用します。 - reftable.restartInterval
-
再起動ポイントを作成する間隔。reftable バックエンドはファイル作成時に再起動ポイントを決定します。16ごとは小さいブロックサイズ (4k または 8k) に適している場合があり、64ごとは大きいブロックサイズ (64k) に適している場合があります。
再起動ポイントが頻繁にあると、プレフィックス圧縮が減少し、再起動テーブルによって消費される領域が増加し、どちらもファイルサイズを増加させます。
再起動ポイントが少ないと、プレフィックス圧縮がより効果的になり、全体のファイルサイズが減少し、バイナリ検索ステップの後により多くのレコードを歩くリーダーのペナルティが増加します。
1ブロックあたり最大
65535
の再起動ポイントがサポートされています。デフォルト値は、16レコードごとに再起動ポイントを作成することです。
0
の値はデフォルト値を使用します。 - reftable.indexObjects
-
reftable バックエンドがオブジェクトブロックを書き込むかどうか。オブジェクトブロックは、オブジェクト ID からそれらを指す参照への逆マッピングです。
デフォルト値は
true
です。 - reftable.geometricFactor
-
reftable バックエンドがスタックに新しいテーブルを追加するたびに、少数のテーブルのみが存在するように自動圧縮を実行します。バックエンドは、各テーブルのそれぞれのサイズに関してテーブルが幾何学的なシーケンスを形成するようにすることでこれを保証します。
デフォルトでは、幾何級数は係数2を使用します。つまり、どのテーブルに対しても、次に大きいテーブルは少なくとも2倍の大きさでなければなりません。最大係数256がサポートされています。
- reftable.lockTimeout
-
reftable バックエンドがスタックに新しいテーブルを追加するたびに、中央の "tables.list" ファイルを更新する前にロックする必要があります。この設定は、別のプロセスがすでにロックを取得している場合に、プロセスがロックを取得するまで待機する時間を制御します。値 0 は全く再試行しないことを意味し、-1 は無期限に再試行することを意味します。デフォルトは 100 (つまり、100ms 間再試行) です。
- 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
オプションを使用してください。 - remote.<name>.serverOption
-
このリモートからフェッチする際に使用されるサーバーオプションのデフォルトセット。これらのサーバーオプションは、
--server-option=
コマンドライン引数によって上書きできます。これは多値変数であり、より優先度の高い設定ファイル (例: リポジトリ内の
.git/config
) で空の値を使用することで、優先度の低い設定ファイル (例:$HOME/.gitconfig
) から継承された値をクリアできます。 - remote.<name>.followRemoteHEAD
-
git-fetch[1] が
remotes/<name>/HEAD
の更新をどのように処理するか。デフォルト値は "create" で、リモートに存在してもローカルに存在しない場合にremotes/<name>/HEAD
を作成します。これは既存のローカル参照には影響しません。"warn" に設定すると、リモートがローカルと異なる値を持つ場合にメッセージが表示されます。ローカル参照がない場合は "create" と同様に動作します。"warn" のバリアントとして "warn-if-not-$branch" があり、これは "warn" と同様に動作しますが、リモートのHEAD
が$branch
の場合は無音になります。"always" に設定すると、remotes/<name>/HEAD
がリモートの値にサイレントに更新されます。最後に、"never" に設定すると、ローカル参照は変更も作成もされません。 - remotes.<group>
-
"git remote update <group>" によってフェッチされるリモートのリスト。git-remote[1] を参照してください。
- repack.useDeltaBaseOffset
-
デフォルトでは、git-repack[1] はデルタベースオフセットを使用するパックを作成します。バージョン 1.4.4 より前の Git と、直接的または http のようなダムプロトコル経由でリポジトリを共有する必要がある場合、このオプションを "false" に設定して再パックする必要があります。古い Git バージョンからのネイティブプロトコルを介したアクセスは、このオプションの影響を受けません。
- repack.packKeptObjects
-
true に設定すると、
git repack
は--pack-kept-objects
が渡されたかのように動作します。詳細については git-repack[1] を参照してください。通常はfalse
がデフォルトですが、ビットマップインデックスが書き込まれている場合 (--write-bitmap-index
またはrepack.writeBitmaps
のいずれかを介して) はtrue
です。 - repack.useDeltaIslands
-
true に設定すると、
git repack
は--delta-islands
が渡されたかのように動作します。デフォルトはfalse
です。 - repack.writeBitmaps
-
true の場合、Git はすべてのオブジェクトをディスクにパックする際 (例:
git repack -a
が実行された場合) にビットマップインデックスを書き込みます。このインデックスは、クローンやフェッチのために作成される後続のパックの「オブジェクトをカウントする」フェーズを高速化できますが、ディスクスペースと初期リパックにかかる追加時間というコストを伴います。複数のパックファイルが作成される場合は影響がありません。ベアリポジトリではデフォルトで 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 を実行しているユーザー自身が所有するリポジトリへのアクセスのみを許可します。ただし、sudo を提供する非 Windows プラットフォームで Git が root として実行されている場合、Git は sudo が作成する SUDO_UID 環境変数をチェックし、root からの ID に加えて、その値として記録された UID へのアクセスを許可します。これは、インストール中に「make && sudo make install」という一般的なシーケンスを簡単に実行できるようにするためです。sudo で実行されている Git プロセスは root として実行されますが、sudo コマンドは元のユーザーが持つ ID を記録するために環境変数をエクスポートします。これが望ましくなく、Git に root が所有するリポジトリのみを信頼させたい場合は、Git を呼び出す前に root の環境から
SUDO_UID
変数を削除できます。 - sendemail.identity
-
設定アイデンティティ。指定すると、sendemail.<identity> サブセクションの値が sendemail セクションの値より優先されます。デフォルトのアイデンティティは
sendemail.identity
の値です。 - sendemail.smtpEncryption
-
説明は git-send-email[1] を参照してください。この設定は identity メカニズムの対象外であることに注意してください。
- sendemail.smtpSSLCertPath
-
CA証明書へのパス (ディレクトリまたは単一ファイル)。証明書検証を無効にするには、空文字列に設定します。
- sendemail.<identity>.*
-
以下に示す sendemail.* パラメータのアイデンティティ固有のバージョンで、コマンドラインまたは
sendemail.identity
を介してこのアイデンティティが選択された場合に優先されます。 - sendemail.multiEdit
-
true (デフォルト) の場合、編集する必要のあるファイル (
--annotate
を使用した際のパッチ、--compose
を使用した際の要約) を編集するために単一のエディタインスタンスが起動されます。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.file
が最初にロードされます。したがって、このファイルのエントリはデフォルトのメールマップの場所のエントリよりも優先されます。gitmailmap[5] を参照してください。 - sendemail.mailmap.blob
-
sendemail.mailmap.file
と同様ですが、値をリポジトリ内のブロブへの参照とみなします。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 コマンド (環境変数
GIT_SSH
またはGIT_SSH_COMMAND
、または設定core.sshCommand
を使用して設定) の基本名に基づいて、使用するコマンドライン引数を決定します。基本名が認識されない場合、Git はまず設定された SSH コマンドを-G
(設定の出力) オプションで呼び出すことによって OpenSSH オプションのサポートを検出しようとします。その後、OpenSSH オプションを使用するか (成功した場合)、ホストとリモートコマンド以外のオプションは使用しません (失敗した場合)。設定変数
ssh.variant
は、この検出を上書きするために設定できます。有効な値は、ssh
(OpenSSH オプションを使用)、plink
、putty
、tortoiseplink
、simple
(ホストとリモートコマンド以外のオプションなし) です。デフォルトの自動検出は、auto
の値を指定して明示的に要求できます。その他の値はssh
として扱われます。この設定は、環境変数GIT_SSH_VARIANT
によって上書きすることもできます。各バリアントで使用される現在のコマンドラインパラメータは以下の通りです。
-
ssh
- [-p ポート] [-4] [-6] [-o オプション] [ユーザー名@]ホスト コマンド -
simple
- [ユーザー名@]ホスト コマンド -
plink
またはputty
- [-P ポート] [-4] [-6] [ユーザー名@]ホスト コマンド -
tortoiseplink
- [-P ポート] [-4] [-6] -batch [ユーザー名@]ホスト コマンド
simple
バリアントを除き、Git が新しい機能を取得するにつれてコマンドラインパラメータは変更される可能性があります。 -
- stash.showIncludeUntracked
-
これを true に設定すると、
git stash show
コマンドはスタッシュエントリの追跡されていないファイルを表示します。デフォルトは false です。git-stash[1] の show コマンドの説明を参照してください。 - stash.showPatch
-
これを true に設定すると、オプションなしの
git stash show
コマンドはスタッシュエントリをパッチ形式で表示します。デフォルトは false です。git-stash[1] の show コマンドの説明を参照してください。 - stash.showStat
-
これを true に設定すると、オプションなしの
git stash show
コマンドはスタッシュエントリの 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」に設定すると、Git はコピーも検出します。デフォルトは diff.renames の値です。
- status.showStash
-
true に設定すると、git-status[1] は現在スタッシュされているエントリの数を表示します。デフォルトは 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 です。これがゼロ以外の数値または true (‐1 または無制限の数と同じ) に設定されている場合、サブモジュールの概要が有効になり、変更されたサブモジュールのコミットの概要が表示されます (git-submodule[1] の --summary-limit オプションを参照)。
diff.ignoreSubmodules
が all に設定されている場合、またはsubmodule.<name>.ignore=all
が設定されているサブモジュールの場合に、すべてのサブモジュールの概要出力コマンドが抑制されることに注意してください。この規則の唯一の例外は、ステータスとコミットがステージングされたサブモジュールの変更を表示することです。無視されたサブモジュールの概要も表示するには、--ignore-submodules=dirty コマンドラインオプションを使用するか、同様の出力を表示するがこれらの設定を尊重しない git submodule summary コマンドを使用します。 - submodule.<name>.url
-
サブモジュールのURL。この変数は、git submodule init を介して .gitmodules ファイルから Git 設定にコピーされます。ユーザーは、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コマンドに関心があるかどうかを示すブール値。この設定オプションは submodule.active 設定オプションよりも優先されます。詳細は 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]
- すでに開いているファイルディスクリプタに書き込みます。 -
<絶対パス名>
- ファイルに追記モードで書き込みます。ターゲットがすでに存在し、ディレクトリである場合、トレースは指定されたディレクトリ下のファイル (プロセスごとに1つ) に書き込まれます。 -
af_unix:[<ソケットタイプ>:]<絶対パス名>
- 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
は、HTTP ユーザーエージェントのオーバーライドと Git 設定ファイルの場所 (設定されている場合) をリストするイベントを trace2 出力に含ませます。GIT_TRACE2_ENV_VARS
環境変数によって上書きされる場合があります。デフォルトでは未設定です。 - trace2.destinationDebug
-
ブール値。true の場合、Git はトレースターゲットの書き込みオープンに失敗したときにエラーメッセージを出力します。デフォルトでは、これらのエラーは抑制され、トレースはサイレントに無効になります。
GIT_TRACE2_DST_DEBUG
環境変数によって上書きされる場合があります。 - trace2.maxFiles
-
整数。トレースファイルをターゲットディレクトリに書き込む際、このファイル数を超過する場合は追加のトレースを書き込みません。代わりに、それ以上のトレーシングをこのディレクトリにブロックするセンチネルファイルを書き込みます。デフォルトは 0 で、このチェックを無効にします。
- trailer.separators
-
このオプションは、トレーラー区切り文字として認識される文字を指定します。デフォルトでは、: のみがトレーラー区切り文字として認識されますが、他の Git コマンドとの互換性のため、= はコマンドラインで常に受け入れられます。
このオプションによって与えられた最初の文字は、このトレーラーの設定で別の区切り文字が指定されていない場合に使用されるデフォルトの文字になります。
たとえば、このオプションの値が "%=$" の場合、<key><sep><value> の形式で <sep> が %、=、または $ を含み、その後にスペースが続く行のみがトレーラーと見なされます。そして、% がデフォルトの区切り文字として使用されるため、デフォルトではトレーラーは <key>% <value> のように表示されます (キーと値の間にパーセント記号1つとスペース1つが表示されます)。
- trailer.where
-
このオプションは、新しいトレーラーがどこに追加されるかを指定します。
これは、デフォルトである
end
、start
、after
、またはbefore
のいずれかです。end
の場合、各新しいトレーラーは既存のトレーラーの末尾に表示されます。start
の場合、各新しいトレーラーは既存のトレーラーの末尾ではなく、先頭に表示されます。after
の場合、各新しいトレーラーは同じ <key> を持つ最後のトレーラーの直後に表示されます。before
の場合、各新しいトレーラーは同じ <key> を持つ最初のトレーラーの直前に表示されます。 - trailer.ifexists
-
このオプションは、入力に同じ <key> を持つトレーラーがすでに少なくとも1つ存在する場合に実行されるアクションを選択できるようにします。
このオプションの有効な値は、
addIfDifferentNeighbor
(これがデフォルト)、addIfDifferent
、add
、replace
、またはdoNothing
です。addIfDifferentNeighbor
の場合、新しいトレーラーは、同じ (<key>, <value>) ペアを持つトレーラーが、新しいトレーラーが追加される行の上または下に存在しない場合にのみ追加されます。addIfDifferent
を使用すると、同じ (<key>, <value>) ペアを持つトレーラーが入力にまだ存在しない場合にのみ、新しいトレーラーが追加されます。add
を使用すると、同じ (<key>, <value>) ペアを持つトレーラーが入力に既に存在する場合でも、新しいトレーラーが追加されます。replace
を使用すると、同じ <key> を持つ既存のトレーラーが削除され、新しいトレーラーが追加されます。削除されるトレーラーは、新しいトレーラーが追加される場所から最も近いもの(同じ <key> を持つもの)になります。doNothing
を使用すると、何も行われません。つまり、同じ <key> を持つトレーラーが入力に既に存在する場合、新しいトレーラーは追加されません。 - trailer.ifmissing
-
このオプションは、入力に同じ <key> を持つトレーラーがまだ存在しない場合に、どのようなアクションを実行するかを選択できるようにします。
このオプションの有効な値は、
add
(デフォルト)とdoNothing
です。add
を使用すると、新しいトレーラーが追加されます。doNothing
を使用すると、何も行われません。 - trailer.<keyAlias>.key
-
<key> の <keyAlias> を定義します。<keyAlias> は <key> のプレフィックスである必要があります(大文字小文字は区別されません)。例えば、
git config trailer.ack.key "Acked-by"
では、「Acked-by」が <key> で、「ack」が <keyAlias> です。この設定により、長い--trailer "Acked-by:..."
の代わりに「ack」 <keyAlias> を使用して、コマンドラインで短い--trailer "ack:..."
の呼び出しが可能になります。<key> の最後に区切り文字とそれに続くいくつかの空白文字を置くことができます。デフォルトでは、唯一有効な区切り文字は : ですが、これは
trailer.separators
設定変数を使用して変更できます。キーに区切り文字がある場合、トレーラーを追加する際にデフォルトの区切り文字を上書きします。
- trailer.<keyAlias>.where
-
このオプションは、trailer.where 設定変数と同じ値を取り、指定された <keyAlias> を持つトレーラーに対して、そのオプションで指定されたものを上書きします。
- trailer.<keyAlias>.ifexists
-
このオプションは、trailer.ifexists 設定変数と同じ値を取り、指定された <keyAlias> を持つトレーラーに対して、そのオプションで指定されたものを上書きします。
- trailer.<keyAlias>.ifmissing
-
このオプションは、trailer.ifmissing 設定変数と同じ値を取り、指定された <keyAlias> を持つトレーラーに対して、そのオプションで指定されたものを上書きします。
- trailer.<keyAlias>.command
-
trailer.<keyAlias>.cmd の代わりに非推奨。このオプションは trailer.<keyAlias>.cmd と同じように動作しますが、指定されたコマンドに引数として何も渡しません。代わりに、$ARG サブストリングの最初の出現が、引数として渡されるであろう <value> に置き換えられます。
ユーザーのコマンド内の $ARG は一度だけ置換され、元の $ARG の置換方法は安全ではないことに注意してください。
同じ <keyAlias> に対して trailer.<keyAlias>.cmd と trailer.<keyAlias>.command の両方が指定された場合、trailer.<keyAlias>.cmd が使用され、trailer.<keyAlias>.command は無視されます。
- trailer.<keyAlias>.cmd
-
このオプションは、指定された <keyAlias> を持つトレーラーを自動的に追加するために一度呼び出され、その後、このオプションが生成するトレーラーの <value> を変更するために --trailer <keyAlias>=<value> 引数が指定されるたびに呼び出されるシェルコマンドを指定するために使用できます。
指定されたコマンドが、指定された <keyAlias> を持つトレーラーを追加するために最初に呼び出されるとき、その動作は、特別な --trailer <keyAlias>=<value> 引数が「git interpret-trailers」コマンドの冒頭に追加されたかのようです。ここで <value> は、コマンドの標準出力から先頭と末尾の空白がすべてトリミングされたものとみなされます。
コマンドラインで --trailer <keyAlias>=<value> 引数も渡される場合、コマンドは同じ <keyAlias> を持つこれらの引数ごとに再度一度呼び出されます。そして、これらの引数の <value> 部分(存在する場合)は、コマンドの最初の引数として渡されます。このようにして、コマンドは --trailer <keyAlias>=<value> 引数で渡された <value> から計算された <value> を生成することができます。
- 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
:Gitは、平文の認証情報を含むURLを解析するときに、stderr
に警告メッセージを出力します。 -
die
:Gitは、平文の認証情報を含むURLを解析するときに、stderr
に失敗メッセージを出力します。
-
- transfer.fsckObjects
-
fetch.fsckObjects
またはreceive.fsckObjects
が設定されていない場合、この変数の値が代わりに使用されます。デフォルトはfalseです。設定されている場合、フェッチまたはレシーブは、不正な形式のオブジェクトまたは存在しないオブジェクトへのリンクがある場合に中止されます。さらに、従来の課題(
fsck.<msg-id>
を参照)や、.GIT
ディレクトリの存在や悪意のある.gitmodules
ファイルなどの潜在的なセキュリティ上の課題など、さまざまな問題がチェックされます(詳細については v2.2.1 および v2.17.1 のリリースノートを参照)。その他の健全性およびセキュリティチェックは、将来のリリースで追加される可能性があります。受信側では、fsckObjectsが失敗すると、それらのオブジェクトは到達不能になります。git-receive-pack[1] の「QUARANTINE ENVIRONMENT」を参照してください。フェッチ側では、不正な形式のオブジェクトは代わりにリポジトリ内で参照されないままになります。
fetch.fsckObjects
の実装は隔離をしない性質上、receive.fsckObjects
のようにオブジェクトストアをクリーンに保つことを信頼することはできません。オブジェクトは展開されるとオブジェクトストアに書き込まれるため、「フェッチ」が失敗したにもかかわらず悪意のあるオブジェクトが導入され、その後の「フェッチ」では新しく入ってくるオブジェクトのみがチェックされ、すでにオブジェクトストアに書き込まれているオブジェクトはチェックされないため成功するというケースがあり得ます。この動作の違いに依存すべきではありません。将来的には、そのようなオブジェクトも「フェッチ」のために隔離される可能性があります。
現状では、神経質なユーザーは「プッシュ」と同じ保護を望む場合、隔離環境をエミュレートする方法を見つける必要があります。例えば、内部ミラーの場合、信頼できないオブジェクトをフェッチするステップと、別の内部リポジトリに2回目の「プッシュ」(隔離を使用)を行うステップの2段階でミラーリングを行い、内部クライアントがこのプッシュされたリポジトリを利用するようにするか、内部フェッチを禁止し、完全な「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
は、その名前を言及せずに参照が指すオブジェクトIDを広告します(いわゆる「.have」行)。参照を隠しても、クライアントはgitnamespaces[7] のmanページの「SECURITY」セクションに記載されている手法でターゲットオブジェクトを盗むことができる可能性があります。プライベートデータは別のリポジトリに保管するのが最善です。
- 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] の「SECURITY」セクションの議論を参照してください。デフォルトはfalse
です。 - uploadpack.hideRefs
-
この変数は
transfer.hideRefs
と同じですが、upload-pack
にのみ適用され(したがって、プッシュではなくフェッチのみに影響します)、git fetch
による非表示の参照のフェッチ試行は失敗します。uploadpack.allowTipSHA1InWant
も参照してください。 - uploadpack.allowTipSHA1InWant
-
uploadpack.hideRefs
が有効な場合、upload-pack
が非表示の参照の先端にあるオブジェクトを要求するフェッチリクエストを受け入れることを許可します(デフォルトでは、このようなリクエストは拒否されます)。uploadpack.hideRefs
も参照してください。たとえこれが false であっても、クライアントはgitnamespaces[7] のmanページの「SECURITY」セクションに記載されている手法でオブジェクトを盗むことができる可能性があります。プライベートデータは別のリポジトリに保管するのが最善です。 - uploadpack.allowReachableSHA1InWant
-
upload-pack
が、任意の参照の先端から到達可能なオブジェクトを要求するフェッチリクエストを受け入れることを許可します。ただし、オブジェクトの到達可能性の計算は計算コストが高いことに注意してください。デフォルトはfalse
です。たとえこれが false であっても、クライアントはgitnamespaces[7] のmanページの「SECURITY」セクションに記載されている手法でオブジェクトを盗むことができる可能性があります。プライベートデータは別のリポジトリに保管するのが最善です。 - uploadpack.allowAnySHA1InWant
-
upload-pack
が、任意のオブジェクトを要求するフェッチリクエストを受け入れることを許可します。これはuploadpack.allowTipSHA1InWant
とuploadpack.allowReachableSHA1InWant
を含意します。true
に設定すると両方が有効になり、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
を含む)は、シェルコマンドに追加されます。フックの標準入力と標準出力は、pack-objects
自体が実行されたかのように扱われます。つまり、upload-pack
はpack-objects
用の入力をフックに渡し、完了したパックファイルを標準出力に期待します。この設定変数は、保護された設定(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がカスタムプロトコルやリモートヘルパーを使用するように変更された場合、リクエストを許可するために
protocol.*.allow
設定を調整する必要があるかもしれません。特に、サブモジュールに使用する予定のプロトコルは、デフォルトのuser
ではなくalways
に設定する必要があります。上記のprotocol.allow
の説明を参照してください。 - url.<base>.pushInsteadOf
-
この値で始まるすべてのURLはプッシュされません。代わりに、<base> で始まるように書き換えられ、その結果のURLにプッシュされます。あるサイトが多数のリポジトリを複数のアクセス方法で提供しており、その一部がプッシュを許可していない場合、この機能により、ユーザーはプル専用のURLを指定し、Gitがサイト上で今まで見たことのないリポジトリであっても、自動的に適切なURLを使用してプッシュできるようになります。与えられたURLに複数の pushInsteadOf 文字列が一致する場合、最も長い一致が使用されます。リモートに明示的な 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
形式は、慣習的に個人名の一種を指すことに注意してください。これらの設定に関する詳細、および認証情報を探している場合はcredential.username
オプションについては、git-commit[1] および git[1] の環境変数セクションを参照してください。 - user.useConfigOnly
-
Gitに対し、
user.email
とuser.name
のデフォルト値を推測しようとせず、設定からのみ値を取得するように指示します。例えば、複数のメールアドレスを持っており、リポジトリごとに異なるメールアドレスを使用したい場合、この設定オプションをグローバル設定でtrue
に設定し、名前とともに設定すると、Gitは新しくクローンされたリポジトリで新しいコミットを作成する前に、メールアドレスを設定するように促します。デフォルトはfalse
です。 - user.signingKey
-
git-tag[1] または git-commit[1] が署名付きタグまたはコミットを作成する際に自動的に希望のキーを選択しない場合、この変数でデフォルトの選択を上書きできます。このオプションはgpgの --local-user パラメータにそのまま渡されるため、gpgがサポートする任意の方法でキーを指定できます。gpg.format が
ssh
に設定されている場合、これは秘密SSHキーへのパス、またはssh-agentが使用されている場合は公開キーへのパスを含むことができます。あるいは、key::
で直接プレフィックスされた公開キー(例: "key::ssh-rsa XXXXXX identifier")を含むこともできます。秘密キーはssh-agentを介して利用可能である必要があります。設定されていない場合、Gitは gpg.ssh.defaultKeyCommand(例: "ssh-add -L")を呼び出し、利用可能な最初のキーを使用しようとします。後方互換性のため、「ssh-rsa XXXXXX identifier」のような「ssh-」で始まる生のキーは「key::ssh-rsa XXXXXX identifier」として扱われますが、この形式は非推奨です。代わりにkey::
形式を使用してください。 - versionsort.prereleaseSuffix (deprecated)
-
versionsort.suffix
の非推奨のエイリアスです。versionsort.suffix
が設定されている場合は無視されます。 - versionsort.suffix
-
git-tag[1] でバージョンソートが使用されている場合でも、同じベースバージョンで異なるサフィックスを持つタグ名は辞書順でソートされるため、例えばプレリリースタグがメインリリース(例: "1.0" の後の "1.0-rc1")の後に表示されます。この変数を指定することで、異なるサフィックスを持つタグのソート順を決定できます。
この変数に単一のサフィックスを指定すると、そのサフィックスを含むタグ名は対応するメインリリースよりも前に表示されます。例えば、変数が「-rc」に設定されている場合、すべての「1.0-rcX」タグは「1.0」よりも前に表示されます。複数回、サフィックスごとに一度指定した場合、設定内のサフィックスの順序が、それらのサフィックスを持つタグ名のソート順を決定します。例えば、設定で「-pre」が「-rc」より前に出現する場合、すべての「1.0-preX」タグは、任意の「1.0-rcX」タグよりも前にリストされます。メインリリースタグと様々なサフィックスを持つタグとの相対的な配置は、それらの他のサフィックスの中に空のサフィックスを指定することで決定できます。例えば、サフィックス「-rc」、「」、「-ck」、「-bfs」がこの順序で設定に現れる場合、すべての「v4.8-rcX」タグが最初にリストされ、次に「v4.8」、次に「v4.8-ckX」、最後に「v4.8-bfsX」がリストされます。
複数のサフィックスが同じタグ名に一致する場合、そのタグ名はタグ名の中で最も早い位置で始まるサフィックスに従ってソートされます。複数の異なる一致するサフィックスがその最も早い位置で始まる場合、そのタグ名はそれらのサフィックスの中で最も長いものに従ってソートされます。異なるサフィックス間のソート順は、複数の設定ファイルに存在する場合は未定義です。
- web.browser
-
一部のコマンドで使用されるウェブブラウザを指定します。現在、git-instaweb[1] と git-help[1] のみが使用できます。
- worktree.guessRemote
-
ブランチが指定されておらず、
-b
も-B
も--detach
も使用されていない場合、git worktree add
はデフォルトでHEADから新しいブランチを作成します。worktree.guessRemote
がtrueに設定されている場合、worktree add
は新しいブランチ名に一意に一致するリモート追跡ブランチを見つけようとします。そのようなブランチが存在する場合、それはチェックアウトされ、新しいブランチの「アップストリーム」として設定されます。そのような一致が見つからない場合、現在のHEADから新しいブランチを作成することにフォールバックします。 - worktree.useRelativePaths
-
ワークツリーを相対パス("true"の場合)または絶対パス("false"の場合)でリンクします。これは、リポジトリとワークツリーが異なる場所や環境間で移動される可能性があるセットアップで特に役立ちます。デフォルトは "false" です。
worktree.useRelativePaths
を "true" に設定すると、extension.relativeWorktrees
設定(git-config[1] を参照)を有効にすることを意味し、これにより古いバージョンのGitとの互換性が失われることに注意してください。
バグ
非推奨の [section.subsection]
構文を使用する場合、サブセクションに少なくとも1つの大文字が含まれていると、値を変更すると、変更ではなく複数行のキーが追加されます。例えば、設定が次のようになっている場合に
[section.subsection] key = value1
git config section.Subsection.key value2
を実行すると、次のようになります。
[section.subsection] key = value1 key = value2
GIT
git[1] スイートの一部です。