セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.50.1 変更なし
-
2.50.0
2025-06-16
- 2.49.1 変更なし
-
2.49.0
2025-03-14
- 2.48.2 変更なし
-
2.48.1
2025-01-13
-
2.48.0
2025-01-10
- 2.47.3 変更なし
-
2.47.2
2024-11-26
-
2.47.1
2024-11-25
-
2.47.0
2024-10-06
- 2.46.4 変更なし
-
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.4 変更なし
-
2.45.3
2024-11-26
- 2.45.1 → 2.45.2 変更なし
-
2.45.0
2024-04-29
- 2.44.4 変更なし
-
2.44.3
2024-11-26
- 2.44.1 → 2.44.2 変更なし
-
2.44.0
2024-02-23
- 2.43.7 変更なし
-
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
オプションが指定されていない限り、拡張正規表現です) を指定する必要があります。パターンに一致する既存の値のみが更新または解除されます。パターンに一致しない行を扱いたい場合は、先頭に単一の感嘆符を追加するだけです (「例」も参照してください)。ただし、これは --fixed-value
オプションが使用されていない場合にのみ機能することに注意してください。
--type=
<type> オプションは、git config に、入出力値が指定された <type> の下で正規化可能であることを保証するように指示します。--type=
<type> が指定されていない場合、正規化は実行されません。呼び出し元は --no-type
で既存の --type
指定子を解除できます。
読み取り時には、デフォルトでシステム、グローバル、およびリポジトリローカルの構成ファイルから値が読み取られ、--system
、--global
、--local
、--worktree
、および --file
<filename> オプションを使用して、その場所からのみ読み取るようにコマンドに指示できます (「ファイル」を参照してください)。
書き込み時には、新しい値はデフォルトでリポジトリローカルの構成ファイルに書き込まれ、--system
、--global
、--worktree
、--file
<filename> オプションを使用して、その場所に書き込むようにコマンドに指示できます (--local
と指定することもできますが、それがデフォルトです)。
このコマンドは、エラーが発生するとゼロ以外のステータスで失敗します。いくつかの終了コードは次のとおりです
-
セクションまたはキーが無効です (ret=1)
-
セクションまたは名前が指定されていません (ret=2)
-
構成ファイルが無効です (ret=3)
-
構成ファイルに書き込むことができません (ret=4)
-
存在しないオプションを解除しようとしています (ret=5)
-
複数行が一致するオプションを解除/設定しようとしています (ret=5)、または
-
無効な正規表現を使用しようとしています (ret=6)。
成功すると、コマンドは終了コード 0 を返します。
利用可能なすべての構成変数の一覧は、git
help
--config
コマンドを使用して取得できます。
コマンド
- list
-
構成ファイルに設定されているすべての変数を、その値とともに一覧表示します。
- get
-
指定されたキーの値を表示します。キーが構成に複数回存在する場合、最後の値を表示します。
--all
が指定されている場合、キーに関連付けられたすべての値を表示します。キーが存在しない場合はエラーコード 1 を返します。 - set
-
1 つ以上の設定オプションの値を設定します。デフォルトでは、このコマンドは複数値の設定オプションへの書き込みを拒否します。
--all
を渡すと、すべての複数値の設定オプションが新しい値に置き換えられます。--value=
は、値が指定されたパターンに一致するすべての設定オプションを置き換えます。 - unset
-
1 つ以上の設定オプションの値を解除します。デフォルトでは、このコマンドは複数値のキーの解除を拒否します。
--all
を渡すと、すべての複数値の設定オプションが解除されます。--value
は、値が指定されたパターンに一致するすべての設定オプションを解除します。 - rename-section
-
指定されたセクションを新しい名前に変更します。
- remove-section
-
指定されたセクションを構成ファイルから削除します。
- edit
-
指定された設定ファイルを変更するためにエディタを開きます。
--system
、--global
、--local
(デフォルト)、--worktree
、または--file
<config-file> のいずれかです。
OPTIONS
- --replace-all
-
デフォルトの動作では、最大 1 行が置き換えられます。これは、キー (およびオプションで
value-pattern
) に一致するすべての行を置き換えます。 - --append
-
既存の値を変更せずに、オプションに新しい行を追加します。これは
set
で --value=^$ を指定するのと同じです。 - --comment <message>
-
新規または変更された行の末尾にコメントを追加します。
If _<message>_ begins with one or more whitespaces followed by "#", it is used as-is. If it begins with "#", a space is prepended before it is used. Otherwise, a string " # " (a space followed by a hash followed by a space) is prepended to it. And the resulting string is placed immediately after the value defined for the variable. The _<message>_ must not contain linefeed characters (no multi-line comments are permitted).
- --all
-
get
の場合、複数値のキーのすべての値を返します。 - --regexp
-
get
の場合、名前を正規表現として解釈します。正規表現マッチングは現在、大文字と小文字を区別し、セクション名と変数名が小文字に変換された正規化されたキーバージョンに対して行われますが、サブセクション名は変換されません。 - --url=<URL>
-
2 部構成の <name> を <section>.<key> として指定すると、指定された URL に最も一致する <section>.<URL>.<key> の値が返されます (そのようなキーが存在しない場合は、<section>.<key> の値がフォールバックとして使用されます)。名前として <section> のみを指定すると、セクション内のすべてのキーに対して同様に処理され、それらが一覧表示されます。値が見つからない場合はエラーコード 1 を返します。
- --global
-
オプションの書き込みの場合: リポジトリの
.git/config
ではなく、グローバルの~/.gitconfig
ファイルに書き込みます。このファイルが存在し、~/.gitconfig
ファイルが存在しない場合は、$XDG_CONFIG_HOME/git/config
ファイルに書き込みます。オプションの読み取りの場合: 利用可能なすべてのファイルからではなく、グローバルの
~/.gitconfig
および$XDG_CONFIG_HOME/git/config
からのみ読み取ります。「ファイル」も参照してください。
- --system
-
オプションの書き込みの場合: リポジトリの
.git/config
ではなく、システム全体の$
(prefix
)/etc/gitconfig
に書き込みます。オプションの読み取りの場合: 利用可能なすべてのファイルからではなく、システム全体の
$
(prefix
)/etc/gitconfig
からのみ読み取ります。「ファイル」も参照してください。
- --local
-
オプションの書き込みの場合: リポジトリの
.git/config
ファイルに書き込みます。これはデフォルトの動作です。オプションの読み取りの場合: 利用可能なすべてのファイルからではなく、リポジトリの
.git/config
からのみ読み取ります。「ファイル」も参照してください。
- --worktree
-
--local
と同様ですが、extensions.worktreeConfig
が有効になっている場合、$GIT_DIR/config.worktree
が読み取られたり書き込まれたりします。有効になっていない場合は--local
と同じです。$GIT_DIR
はメインの作業ツリーでは$GIT_COMMON_DIR
と等しいですが、他の作業ツリーでは$GIT_DIR/worktrees/
<id>/
の形式であることに注意してください。extensions.worktreeConfig
を有効にする方法については、git-worktree[1] を参照してください。 - -f <config-file>
- --file <config-file>
-
オプションの書き込みの場合: リポジトリの
.git/config
ではなく、指定されたファイルに書き込みます。オプションの読み取りの場合: 利用可能なすべてのファイルからではなく、指定されたファイルからのみ読み取ります。
「ファイル」も参照してください。
- --blob <blob>
-
--file
と同様ですが、ファイルの代わりに指定されたブロブを使用します。例えば、master:.gitmodules を使用して、マスターブランチのファイル .gitmodules から値を読み取ることができます。ブロブ名を指定するより完全な方法のリストについては、gitrevisions[7] の「リビジョンの指定」セクションを参照してください。 - --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
と同様に、クエリされたすべての設定オプションの出力にその値のスコープ (ワークツリー、ローカル、グローバル、システム、コマンド) を追加します。 - --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
-
これはオプションであり、
extensions.worktreeConfig
が $GIT_DIR/config に存在する場合にのみ検索されます。
-c
オプションを使用することで、任意の Git コマンドを実行するときに追加の設定パラメータを指定することもできます。詳細については、git[1] を参照してください。
利用可能なこれらのすべてのファイルからオプションが読み取られます。グローバルまたはシステム全体の設定ファイルが欠落しているか読み取れない場合は無視されます。リポジトリの設定ファイルが欠落しているか読み取れない場合、git config はゼロ以外のエラーコードで終了します。ファイルが読み取れない場合はエラーメッセージが生成されますが、欠落している場合は生成されません。
ファイルは上記で指定された順序で読み取られ、最後に見つかった値が以前に読み取られた値よりも優先されます。複数の値が取得される場合、すべてのファイルからのキーのすべての値が使用されます。
デフォルトでは、オプションはリポジトリ固有の設定ファイルにのみ書き込まれます。これは set
や unset
のようなオプションにも影響することに注意してください。git config は一度に 1 つのファイルしか変更しません。
--file
オプションでファイルのパスを指定するか、--system
、--global
、--local
、または --worktree
で設定スコープを指定することで、読み書きする設定ソースを制限できます。詳細については、上記の「OPTIONS」を参照してください。
スコープ
各設定ソースは設定スコープ内に含まれます。スコープは次のとおりです。
- システム
-
$(prefix)/etc/gitconfig
- グローバル
-
$XDG_CONFIG_HOME/git/config
~/.gitconfig
- ローカル
-
$GIT_DIR/config
- ワークツリー
-
$GIT_DIR/config.worktree
- コマンド
-
GIT_CONFIG_{COUNT,KEY,VALUE} 環境変数 (下記の「環境」を参照)
-c
オプション
command を除いて、各スコープはコマンドラインオプション --system
、--global
、--local
、--worktree
に対応します。
オプションを読み取る場合、スコープを指定すると、そのスコープ内のファイルからのみオプションが読み取られます。オプションを書き込む場合、スコープを指定すると、そのスコープ内のファイルに書き込まれます (リポジトリ固有の設定ファイルの代わりに)。完全な説明については、上記の「オプション」を参照してください。
ほとんどの設定オプションは、それが定義されているスコープに関係なく尊重されますが、一部のオプションは特定のスコープでのみ尊重されます。詳細については、それぞれのオプションのドキュメントを参照してください。
環境
「ファイル」も参照してください。
- 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 を識別するための postfix があります。ここでは、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 ...」という postfix のない行のみを置き換えたい場合は、次のようにします。
% 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]」の「設定ファイル」セクションを参照) は、そのリポジトリの設定を保存するために使用され、$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
セクションでは、別のソースからの設定ディレクティブをインクルードできます。これらのセクションは、条件が true に評価されない場合に includeIf
セクションが無視される点を除いて、互いに同じように動作します。詳細については、下記の「条件付きインクルード」を参照してください。
特別な 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 に対して多くの同義語が受け入れられます。これらはすべて大文字と小文字を区別しません。
- 整数
-
さまざまなサイズを指定する多くの変数の値は、"1024 倍"、"1024x1024 倍" などを意味する
k
、M
、... の接尾辞を付けることができます。 - 色
-
色を受け取る変数の値は、スペースで区切られた色 (最大 2 つ、前景と背景に 1 つずつ) と属性 (必要なだけ) のリストです。
受け入れられる基本色は
normal
、black
、red
、green
、yellow
、blue
、magenta
、cyan
、white
、default
です。最初に指定された色が前景、2 番目が背景です。normal
とdefault
を除くすべての基本色は、brightred
のように色をbright
でプレフィックスすることで指定できる明るいバリアントを持ちます。normal
の色は、色に何も変更を加えません。空文字列と同じですが、背景色のみを指定する場合 (例: "normal red") に前景色として使用できます。default
の色は、色を明示的に端末のデフォルトにリセットします。例えば、クリアされた背景を指定する場合などです。端末によって異なりますが、これは通常、「white black」と設定するのとは異なります。色を 0 から 255 の間の数値で指定することもできます。これらは ANSI 256 色モードを使用します (ただし、すべての端末がこれをサポートしているわけではないことに注意してください)。端末がサポートしている場合、
#ff0ab3
のような 24 ビット RGB 値、または#ff11bb
の 24 ビットカラーに相当する#f1b
のような 12 ビット RGB 値を指定することもできます。受け入れられる属性は、
bold
、dim
、ul
、blink
、reverse
、italic
、strike
(打ち消し線、または「取り消し線」の文字) です。色の属性に対する位置 (前、後、または間) は関係ありません。特定の属性はno
またはno-
を前置することで無効にすることができます (例:noreverse
、no-ul
など)。疑似属性
reset
は、指定された色付けを適用する前に、すべての色と属性をリセットします。たとえば、reset
green
は、前景を緑、背景をデフォルトにし、アクティブな属性をすべて解除します。空のカラー文字列は、まったくカラー効果を生み出しません。これは、カラー全体を無効にせずに特定の要素の色付けを避けるために使用できます。
Git の定義済みカラー スロットの場合、属性はカラー出力の各項目の先頭でリセットされることを意味します。したがって、
color.decorate.branch
をblack
に設定すると、たとえ同じ出力行の前のもの (例:log
--decorate
出力におけるブランチ名リストの前の開始括弧) がbold
または他の属性で色付けされるように設定されていても、そのブランチ名は単純なblack
で描画されます。ただし、カスタムのログ形式では、より複雑でレイヤードな色付けが行われる可能性があり、否定形がそこで役立つ場合があります。 - パス名
-
パス名の値を取る変数は、"
~/
" または "~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
-
複数のリモートに対するフェッチ refspec が同じリモートトラッキングブランチの名前空間にマッピングされ、ブランチトラッキングの設定に失敗した場合に表示されます。
- checkoutAmbiguousRemoteBranchName
-
git-checkout[1] および git-switch[1] の引数が、複数のリモートでリモートトラッキングブランチに曖昧に解決される場合に表示されます。通常であれば、曖昧でない引数であればリモートトラッキングブランチがチェックアウトされたはずの状況です。このアドバイスが表示される一部の状況で、特定のリモートをデフォルトで使用するように設定する方法については、
checkout.defaultRemote
設定変数を参照してください。 - commitBeforeMerge
-
git-merge[1] がローカルの変更を上書きするのを避けるためにマージを拒否したときに表示されます。
- detachedHead
-
ユーザーが git-switch[1] または git-checkout[1] を使用して detached HEAD 状態に移行したときに、後からローカルブランチを作成する方法をユーザーに伝えるために表示されます。
- diverging
-
早送りマージが不可能な場合に表示されます。
- fetchShowForcedUpdates
-
ref の更新後、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
-
rebase todo リストを編集した後にエラーが発生した場合に表示されます。
- refSyntax
-
ユーザーが不正な参照名を指定したときに、参照構文のドキュメントについてユーザーに伝えるために表示されます。
- resetNoRefresh
-
git-reset[1] がリセット後にインデックスの更新に 2 秒以上かかった場合に、ユーザーに
--no-refresh
オプションを使用できることを伝えるために表示されます。 - resolveConflict
-
衝突によって操作の実行が妨げられたときに、さまざまなコマンドによって表示されます。
- rmHints
-
git-rm[1] の出力で失敗した場合に、現在の状態からどのように続行するかを指示するために表示されます。
- sequencerInUse
-
シーケンサコマンドがすでに進行中の場合に表示されます。
- skippedCherryPicks
-
git-rebase[1] が、すでにアップストリームブランチにチェリーピックされているコミットをスキップした場合に表示されます。
- sparseIndexExpanded
-
スパースインデックスがフルインデックスに展開されたときに表示されます。これは、スパースチェックアウトの外部に予期しないファイルセットが存在するためである可能性が高いです。
- statusAheadBehind
-
git-status[1] がローカル参照とリモート追跡参照の ahead/behind カウントを計算し、その計算が予想よりも時間がかかった場合に表示されます。
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 を記録しており、そのブロブがローカルで利用可能な場合、git
am
に 3 者間マージにフォールバックするように指示します (コマンドラインから--3way
オプションを与えることと同等です)。デフォルトはfalse
です。git-am[1] を参照してください。 - apply.ignoreWhitespace
-
change に設定すると、
--ignore-space-change
オプションと同様に、git apply に空白文字の変更を無視するように指示します。no、none、never、false のいずれかに設定すると、git apply にすべての空白文字の違いを尊重するように指示します。git-apply[1] を参照してください。 - apply.whitespace
-
--whitespace
オプションと同様に、git apply に空白文字の扱い方を指示します。git-apply[1] を参照してください。 - attr.tree
-
作業ツリー内の
.gitattributes
ファイルの代わりに、属性を読み取るリポジトリ内のツリーへの参照。値が有効なツリーオブジェクトに解決されない場合、代わりに空のツリーが使用されます。GIT_ATTR_SOURCE
環境変数または--attr-source
コマンドラインオプションが使用されている場合、この設定変数は効果がありません。
注
|
bitmapPseudoMerge.* の設定オプションは実験的と見なされ、将来変更または完全に削除される可能性があります。疑似マージビットマップ機能の詳細については、gitpacking[7] の「Pseudo-merge bitmaps」セクションを参照してください。 |
- 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
th
group
が最初のグループの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)、より多くの安定したグループが生成されますが(これは1回限りの生成コストを伴う)、それらのグループは時間の経過とともに陳腐化する可能性があります。より大きな値を使用すると、逆のペナルティが発生します(安定したグループが少なくなり、より有用になります)。
- bitmapPseudoMerge.<name>.stableSize
-
安定した疑似マージビットマップのサイズ(コミット数)を決定します。デフォルトは
512
です。 - blame.blankBoundary
-
git-blame[1] で境界コミットのコミットオブジェクト名を空で表示します。このオプションはデフォルトで false です。
- blame.coloring
-
これは blame の出力に適用される色付けスキームを決定します。repeatedLines、highlightRecent、またはデフォルトの none を指定できます。
- blame.date
-
git-blame[1] で日付を出力する際に使用する形式を指定します。設定されていない場合は iso 形式が使用されます。サポートされている値については、git-log[1] の
--date
オプションの説明を参照してください。 - blame.showEmail
-
git-blame[1] で、作者名の代わりに作者のメールアドレスを表示します。このオプションはデフォルトで false です。
- blame.showRoot
-
git-blame[1] で、ルートコミットを境界として扱いません。このオプションはデフォルトで false です。
- blame.ignoreRevsFile
-
git-blame[1] で、ファイルにリストされているリビジョンを無視します。各行に省略されていないオブジェクト名を1つずつ記述します。空白と
#
で始まるコメントは無視されます。このオプションは複数回繰り返すことができます。空のファイル名を指定すると、無視されるリビジョンのリストがリセットされます。このオプションはコマンドラインオプション--ignore-revs-file
よりも前に処理されます。 - blame.markUnblamableLines
-
git-blame[1] の出力で、無視されたリビジョンによって変更され、他のコミットに帰属させることができなかった行に * をマークします。
- blame.markIgnoredLines
-
git-blame[1] の出力で、無視されたリビジョンによって変更され、他のコミットに帰属させた行に ? をマークします。
branch.autoSetupMerge
-
git
branch
、git
switch
、およびgit
checkout
に、git-pull[1] が開始点ブランチから適切にマージするように、新しいブランチを設定するように指示します。このオプションが設定されていなくても、--track
および--no-track
オプションを使用してブランチごとにこの動作を選択できることに注意してください。このオプションはデフォルトでtrue
です。有効な設定は次のとおりです。 branch.autoSetupRebase
-
git
branch
、git
switch
、またはgit
checkout
で別のブランチを追跡する新しいブランチが作成された場合、この変数は Git にプルをマージの代わりにリベースに設定するように指示します(branch.
<name>.rebase
を参照)。有効な設定は次のとおりです。別のブランチを追跡するようにブランチを設定する方法の詳細については、
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 をマージするようにデフォルトで設定されます。複数の値を指定すると、オクトパスマージになります。git
pull
を設定して、ローカルリポジトリの別のブランチから <name> にマージしたい場合は、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-switch[1] と git-checkout[1] で
git
checkout
<something> またはgit
switch
<something> が別のリモートの <something> ブランチをチェックアウトする場合、および git-worktree[1] でgit
worktree
add
がリモートブランチを参照する場合に使用されます。この設定は、将来的に他のチェックアウトに似たコマンドや機能に使用される可能性があります。 checkout.guess
-
git
checkout
およびgit
switch
の--guess
または--no-guess
オプションのデフォルト値を提供します。git-switch[1] および git-checkout[1] を参照してください。 checkout.workers
-
ワーキングツリーを更新する際に使用する並行ワーカーの数。デフォルトは1、つまり順次実行です。1未満の値に設定すると、Git は利用可能な論理コアの数と同じ数のワーカーを使用します。この設定と
checkout.thresholdForParallelism
は、チェックアウトを実行するすべてのコマンドに影響します。例:checkout、clone、reset、sparse-checkoutなど。注並列チェックアウトは通常、SSD または NFS 上にあるリポジトリでより良いパフォーマンスを発揮します。スピニングディスク上にあるリポジトリや、コア数が少ないマシンでは、デフォルトのシーケンシャルチェックアウトの方がパフォーマンスが良いことがよくあります。リポジトリのサイズと圧縮レベルも、並列バージョンのパフォーマンスに影響を与える可能性があります。 checkout.thresholdForParallelism
-
少数のファイルで並列チェックアウトを実行する場合、サブプロセス生成とプロセス間通信のコストが並列化のメリットを上回る可能性があります。この設定により、並列チェックアウトを試行する最小ファイル数を定義できます。デフォルトは100です。
- clean.requireForce
-
git-clean が -f が指定されない限りファイルを削除することを拒否するかどうかを示すブール値。デフォルトは 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週間よりも古いものを指定するには
2.weeks.ago
が有効です。デフォルトは
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
(その他の参照)のいずれかです。接ぎ木されたコミットにはgrafted
を使用します。 - 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>
-
差分の色付けにカスタマイズされた色を使用します。<slot> は、指定された色を使用するパッチの部分を指定し、
context
(コンテキストテキスト -plain
は歴史的な同義語)、meta
(メタ情報)、frag
(ハンクヘッダー)、func (ハンクヘッダー内の関数)、old
(削除された行)、new
(追加された行)、commit
(コミットヘッダー)、whitespace
(空白エラーのハイライト)、oldMoved
(削除された行)、newMoved
(追加された行)、oldMovedDimmed
、oldMovedAlternative
、oldMovedAlternativeDimmed
、newMovedDimmed
、newMovedAlternative
、newMovedAlternativeDimmed
(詳細は git-diff[1] の --color-moved の <mode> 設定を参照)、contextDimmed
、oldDimmed
、newDimmed
、contextBold
、oldBold
、およびnewBold
(詳細は git-range-diff[1] を参照) のいずれかです。 - color.decorate.<slot>
-
git log --decorate 出力にカスタマイズされた色を使用します。<slot> は、ローカルブランチ、リモート追跡ブランチ、タグ、スタッシュ、HEAD にそれぞれ
branch
、remoteBranch
、tag
、stash
、HEAD
のいずれかであり、接ぎ木されたコミットにはgrafted
を使用します。 - color.grep
-
always
に設定されている場合、常に一致を強調表示します。false
(またはnever
)の場合、強調表示しません。true
またはauto
に設定されている場合、出力が端末に書き込まれる場合にのみ色を使用します。設定されていない場合、color.ui
の値が使用されます(デフォルトはauto
)。 - color.grep.<slot>
-
grep の色付けにカスタマイズされた色を使用します。<slot> は、指定された色を使用する行の部分を指定し、次のいずれかです。
context
-
コンテキスト行の非一致テキスト(
-A
、-B
、または-C
を使用した場合) filename
-
ファイル名プレフィックス(
-h
を使用しない場合) function
-
関数名行(
-p
を使用した場合) lineNumber
-
行番号プレフィックス(
-n
を使用した場合) column
-
列番号プレフィックス(
--column
を使用した場合) match
-
一致するテキスト(
matchContext
とmatchSelected
を設定するのと同じ) matchContext
-
コンテキスト行内の一致テキスト
matchSelected
-
選択された行内の一致テキスト。また、以下の git-log[1] サブコマンドをカスタマイズするためにも使用されます。
--grep
、--author
、--committer
。 selected
-
選択された行の非一致テキスト。また、以下の git-log[1] サブコマンドをカスタマイズするためにも使用されます。
--grep
、--author
、--committer
。 separator
-
行内のフィールド間の区切り文字(
:
、-
、および=
)とハンク間の区切り文字(--
)
- color.interactive
-
always
に設定されている場合、インタラクティブなプロンプトと表示("git-add --interactive" や "git-clean --interactive" で使用されるものなど)に常に色を使用します。false
(またはnever
)の場合、決して使用しません。true
またはauto
に設定されている場合、出力が端末に出力される場合にのみ色を使用します。設定されていない場合、color.ui
の値が使用されます(デフォルトはauto
)。 - color.interactive.<slot>
-
git add --interactive および git clean --interactive の出力にカスタマイズされた色を使用します。<slot> は、インタラクティブコマンドからの4種類の通常の出力タイプに対して、
prompt
、header
、help
、またはerror
のいずれかです。 - color.pager
-
auto
色モードがページャーに出力される色を付けるかどうかを指定するブール値。デフォルトは true です。ページャーが ANSI カラーコードを理解しない場合は false に設定します。 - color.push
-
プッシュエラーでの色を有効/無効にするブール値。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。この場合、色エラー出力が端末に出力される場合にのみ色が使用されます。設定されていない場合は、color.ui
の値が使用されます(デフォルトはauto
)。 - color.push.error
-
プッシュエラーにカスタマイズされた色を使用します。
- color.remote
-
設定されている場合、行の先頭のキーワードがハイライト表示されます。キーワードは「error」、「warning」、「hint」、「success」で、大文字と小文字を区別せずに一致します。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。設定されていない場合、color.ui
の値が使用されます(デフォルトはauto
)。 - color.remote.<slot>
-
各リモートキーワードにカスタマイズされた色を使用します。<slot> は、対応するキーワードと一致する
hint
、warning
、success
、またはerror
のいずれかです。 - color.showBranch
-
git-show-branch[1] の出力で色を有効/無効にするブール値。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。この場合、出力が端末に出力される場合にのみ色が使用されます。設定されていない場合は、color.ui
の値が使用されます(デフォルトはauto
)。 - color.status
-
git-status[1] の出力で色を有効/無効にするブール値。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。この場合、出力が端末に出力される場合にのみ色が使用されます。設定されていない場合は、color.ui
の値が使用されます(デフォルトはauto
)。 - color.status.<slot>
-
ステータス色付けにカスタマイズされた色を使用します。<slot> は、
header
(ステータスメッセージのヘッダーテキスト)、added
またはupdated
(追加されたがコミットされていないファイル)、changed
(変更されたがインデックスに追加されていないファイル)、untracked
(Git によって追跡されていないファイル)、branch
(現在のブランチ)、nobranch
(ブランチなし警告の表示色、デフォルトは赤)、localBranch
またはremoteBranch
(それぞれ、ステータス簡易形式でブランチと追跡情報が表示されるときのローカルおよびリモートブランチ名)、またはunmerged
(未マージの変更があるファイル)のいずれかです。 - color.transport
-
プッシュが拒否されたときに色を有効/無効にするブール値。
always
、false
(またはnever
)、またはauto
(またはtrue
)に設定できます。この場合、色エラー出力が端末に出力される場合にのみ色が使用されます。設定されていない場合は、color.ui
の値が使用されます(デフォルトはauto
)。 - color.transport.rejected
-
プッシュが拒否されたときにカスタマイズされた色を使用します。
- color.ui
-
この変数は、コマンドファミリごとの色の使用を制御する
color.diff
やcolor.grep
などの変数のデフォルト値を決定します。より多くのコマンドが--color
オプションのデフォルトを設定するための設定を学習するにつれて、そのスコープは拡大するでしょう。他の設定や--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] を参照してください。ログメッセージにコメント文字(core.commentChar
、デフォルトは#
)で始まる行を常に保持したい場合に、デフォルトを変更すると便利です。その場合、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 です (設定ファイルで 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
-
このオプションは、Mac OS 版 Git でのみ使用されます。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」セクションを参照してください。
コマンドライン版と IDE ツール版など、複数のバージョンの Git を同時に使用する場合、
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 の差異は無視されます。これは inode 変更時間が Git の外部(ファイルシステムクローラーや一部のバックアップシステム)によって定期的に変更される場合に便利です。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] を参照してください。デフォルトはkeep
ですが、feature.manyFiles
が有効な場合はデフォルトでtrue
に設定されます。 - core.checkStat
-
この変数が設定されていないか
default
に設定されている場合、Git がファイルを最後に確認してから変更されたかどうかを検出するために、stat 構造体の多くのフィールドがチェックされます。この設定変数がminimal
に設定されている場合、mtime および ctime のサブ秒部分、ファイルの所有者の uid および gid、inode 番号(および Git がそれを使用するようにコンパイルされている場合はデバイス番号)は、これらのフィールドのチェックから除外され、mtime の秒単位(およびcore.trustCtime
が設定されている場合は ctime)とファイルサイズのみがチェックされます。一部のGitの実装では、一部のフィールドに有用な値が残らない場合があります(例:JGit)。これらのフィールドを比較から除外することで、
minimal
モードは、同じリポジトリがこれらの他のシステムで同時に使用される場合の相互運用性を向上させる可能性があります。 - core.quotePath
-
パスを出力するコマンド(例:ls-files、diff)は、パス名に「異常な」文字が含まれている場合、パス名を二重引用符で囲み、それらの文字を C 言語が制御文字(例:タブは \t、改行は \n、バックスラッシュは \\)をエスケープするのと同じ方法でバックスラッシュでエスケープします。または、0x80 より大きい値を持つバイト(例:UTF-8 の「マイクロ」の8進数 \302\265)。この変数が false に設定されている場合、0x80 より大きいバイトはもはや「異常な」ものとは見なされません。二重引用符、バックスラッシュ、および制御文字は、この変数の設定に関係なく常にエスケープされます。単純なスペース文字は「異常な」ものとは見なされません。多くのコマンドは
-z
オプションを使用してパス名を完全にそのまま出力できます。デフォルト値は true です。 - core.eol
-
テキストとしてマークされたファイル(
text
属性が設定されているか、text=auto
で Git が内容をテキストとして自動検出した場合)について、ワーキングディレクトリで使用する行末タイプを設定します。選択肢は lf、crlf、およびプラットフォームのネイティブな行末を使用する native です。デフォルト値はnative
です。行末変換の詳細については gitattributes[5] を参照してください。この値は、core.autocrlf
がtrue
またはinput
に設定されている場合は無視されることに注意してください。 - core.safecrlf
-
trueの場合、行末変換がアクティブなときに、
CRLF
の変換が元に戻せるかどうかを Git にチェックさせます。Git は、コマンドがワーキングツリー内のファイルを直接的または間接的に変更するかどうかを確認します。たとえば、ファイルをコミットしてから同じファイルをチェックアウトすると、ワーキングツリーで元のファイルが生成されるはずです。core.autocrlf
の現在の設定でこれが当てはまらない場合、Git はファイルを拒否します。この変数は「warn」に設定することもでき、その場合、Git は元に戻せない変換について警告するだけで、操作を続行します。CRLF 変換は、データが破損するわずかな可能性があります。これが有効になっている場合、Git はコミット時に CRLF を LF に、チェックアウト時に LF を CRLF に変換します。コミット前に LF と CRLF が混在していたファイルは、Git によって再作成できません。テキストファイルの場合、これは正しいことです。行末を修正して、リポジトリには LF の行末のみがあるようにします。しかし、誤ってテキストとして分類されたバイナリファイルの場合、変換はデータを破損する可能性があります。
このような破損を早期に認識した場合は、.gitattributes で変換タイプを明示的に設定することで簡単に修正できます。コミット直後には、ワーキングツリーに元のファイルがまだあり、このファイルはまだ破損していません。このファイルがバイナリであることを Git に明示的に伝えることができ、Git はファイルを適切に処理します。
残念ながら、混在する行末を持つテキストファイルをクリーンアップするという望ましい効果と、バイナリファイルを破損するという望ましくない効果を区別することはできません。どちらの場合も、CRLF は元に戻せない方法で削除されます。テキストファイルの場合、CRLF は行末であるため、これは正しいことですが、バイナリファイルの場合、CRLF を変換するとデータが破損します。
この安全チェックは、
core.eol
とcore.autocrlf
の設定が異なっても、チェックアウトが元のファイルと同一のファイルを生成することを意味するのではなく、現在の設定でのみ有効であることに注意してください。たとえば、LF
のテキストファイルはcore.eol=lf
で受け入れられ、後でcore.eol=crlf
でチェックアウトされる可能性があり、その場合、結果のファイルにはCRLF
が含まれますが、元のファイルにはLF
が含まれていました。ただし、両方のワーキングツリーでは行末は一貫しており、すべてLF
またはすべてCRLF
のいずれかであり、混在することはありません。混在する行末を持つファイルは、core.safecrlf
メカニズムによって報告されます。 - core.autocrlf
-
この変数を「true」に設定することは、すべてのファイルで
text
属性を「auto」に設定し、core.eol を「crlf」に設定するのと同じです。ワーキングディレクトリにCRLF
行末を持ち、リポジトリに LF 行末がある場合に true に設定します。この変数は input に設定することもでき、その場合、出力変換は実行されません。 - core.checkRoundtripEncoding
-
Git が UTF-8 ラウンドトリップチェックを実行するエンコーディングのコンマおよび/または空白区切りのリスト。
working-tree-encoding
属性(gitattributes[5] を参照)で使用される場合。デフォルト値はSHIFT-JIS
です。 - core.symlinks
-
false の場合、シンボリックリンクはリンクテキストを含む小さなプレーンファイルとしてチェックアウトされます。git-update-index[1] および git-add[1] は記録されたタイプを通常のファイルに変更しません。シンボリックリンクをサポートしない FAT などのファイルシステムで役立ちます。
デフォルトは true ですが、リポジトリが作成される際に git-clone[1] または git-init[1] がプローブし、適切であれば core.symlinks を false に設定します。
- core.gitProxy
-
Git プロトコルを使用してフェッチする際に、リモートサーバーへの直接接続を確立する代わりに、(command host port として)実行する「プロキシコマンド」。変数値が「COMMAND for DOMAIN」形式の場合、コマンドは指定されたドメイン文字列で終わるホスト名にのみ適用されます。この変数は複数回設定でき、指定された順序で一致します。最初の一致が優先されます。
GIT_PROXY_COMMAND
環境変数で上書きできます(これは常に「for」の特殊処理なしで普遍的に適用されます)。特殊な文字列
none
は、指定されたドメインパターンに対してプロキシを使用しないことを指定するプロキシコマンドとして使用できます。これは、ファイアウォール内のサーバーをプロキシの使用から除外し、外部ドメインの共通プロキシにデフォルト設定する場合に便利です。 - core.sshCommand
-
この変数が設定されている場合、
git
fetch
およびgit
push
は、リモートシステムに接続する必要があるときにssh
の代わりに指定されたコマンドを使用します。このコマンドはGIT_SSH_COMMAND
環境変数と同じ形式であり、環境変数が設定されている場合は上書きされます。 - core.ignoreStat
-
trueの場合、Gitは、インデックスとワーキングツリーの両方で同一に更新された追跡ファイルに対して「assume-unchanged」ビットを設定することで、lstat()呼び出しを使用してファイルの変更を検出するのを避けます。
Git の外部でファイルが変更された場合、ユーザーは変更されたファイルを明示的にステージングする必要があります(例:git-update-index[1] の Examples セクションを参照)。Git は通常、それらのファイルの変更を検出しません。
これは、CIFS/Microsoft Windows など、lstat() 呼び出しが非常に遅いシステムで役立ちます。
デフォルトは false です。
- core.preferSymlinkRefs
-
HEAD およびその他のシンボリック参照ファイルに対して、デフォルトの「symref」形式ではなく、シンボリックリンクを使用します。これは、HEAD がシンボリックリンクであることを期待する古いスクリプトで機能するために必要な場合があります。
- core.alternateRefsCommand
-
代替から利用可能な履歴の先端を宣伝する場合、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-dir または GIT_DIR で指定された、または自動的に検出された .git ディレクトリへのパスからの相対パスでもかまいません。--git-dir または GIT_DIR が指定されているが、--work-tree、GIT_WORK_TREE、および core.worktree のいずれも指定されていない場合、現在のワーキングディレクトリがワーキングツリーの最上位と見なされます。この変数は、ディレクトリの「.git」サブディレクトリ内の設定ファイルに設定されている場合でも、その値が後者のディレクトリと異なる場合(例:"/path/to/.git/config" の core.worktree が "/different/path" に設定されている場合)に尊重されることに注意してください。これはほとんどの場合誤設定です。"/path/to" ディレクトリで Git コマンドを実行しても、"/different/path" がワーキングツリーのルートとして使用され、何をしているか理解していない限り混乱を招く可能性があります(例:リポジトリの通常のワーキングツリーとは異なる場所に同じインデックスの読み取り専用スナップショットを作成している場合)。
- core.logAllRefUpdates
-
reflog を有効にします。ref <ref> への更新は、新しい SHA-1 と古い SHA-1、日付/時刻、更新理由を追記してファイル「
$GIT_DIR/logs/
<ref>」に記録されますが、ファイルが存在する場合に限られます。この設定変数がtrue
に設定されている場合、ブランチヘッド(つまりrefs/heads/
以下)、リモート参照(つまりrefs/remotes/
以下)、ノート参照(つまりrefs/notes/
以下)、およびシンボリック参照HEAD
に対して、欠落している「$GIT_DIR/logs/
<ref>」ファイルが自動的に作成されます。always
に設定されている場合、refs/
以下のすべての参照に対して欠落している reflog が自動的に作成されます。この情報は、「2日前」にブランチの先端だったコミットを特定するために使用できます。
この値は、ワーキングディレクトリが関連付けられているリポジトリではデフォルトで true、ベアリポジトリではデフォルトで false です。
- core.repositoryFormatVersion
-
リポジトリ形式とレイアウトのバージョンを識別する内部変数。gitrepository-layout[5] を参照してください。
-
group (または true) の場合、リポジトリはグループ内の複数のユーザー間で共有可能になります (すべてのファイルとオブジェクトがグループ書き込み可能であることを確認します)。all (または world または everybody) の場合、リポジトリはグループ共有可能であることに加えて、すべてのユーザーが読み取り可能になります。umask (または false) の場合、Git は umask(2) によって報告されたアクセス許可を使用します。0xxx の場合、0xxx が8進数である場合、リポジトリ内のファイルはこのモード値を持つことになります。0xxx はユーザーの umask 値を上書きします (他のオプションはユーザーの umask 値の要求された部分のみを上書きします)。例:0660 は、リポジトリを所有者とグループに対して読み書き可能にし、他のユーザーにはアクセス不可能にします (umask が例えば 0022 でない限り、group と同等です)。0640 はグループ読み取り可能ですが、グループ書き込み可能ではないリポジトリです。git-init[1] を参照してください。デフォルトは false です。
- core.warnAmbiguousRefs
-
これをtrueにすると、Gitは渡された参照名があいまいであり、リポジトリ内の複数の参照に一致する可能性がある場合に警告します。デフォルトはtrueです。
- core.compression
-
デフォルトの圧縮レベルを示す-1から9の整数です。-1はzlibのデフォルトです。0は圧縮なしを意味し、1から9は様々な速度/サイズのトレードオフで、9が最も遅いです。設定されている場合、これは
core.looseCompression
やpack.compression
のような他の圧縮変数のデフォルトを提供します。 - core.looseCompression
-
パックファイルにないオブジェクトの圧縮レベルを示す-1から9の整数です。-1はzlibのデフォルトです。0は圧縮なしを意味し、1から9は様々な速度/サイズのトレードオフで、9が最も遅いです。設定されていない場合、core.compressionにデフォルト設定されます。それが設定されていない場合、1(最速)にデフォルト設定されます。
- core.packedGitWindowSize
-
単一のマッピング操作でメモリにマップするパックファイルのバイト数。ウィンドウサイズが大きいほど、システムは少数の大きなパックファイルをより迅速に処理できる可能性があります。ウィンドウサイズが小さいほど、オペレーティングシステムのメモリマネージャーへの呼び出しが増えるため、パフォーマンスが低下しますが、多数の大きなパックファイルにアクセスする場合にはパフォーマンスが向上する可能性があります。
NO_MMAPがコンパイル時に設定されていた場合はデフォルトは1MiB、それ以外の場合は32ビットプラットフォームでは32MiB、64ビットプラットフォームでは1GiBです。これはすべてのユーザー/オペレーティングシステムにとって妥当なはずです。通常、この値を調整する必要はありません。
一般的な単位の接尾辞「k」、「m」、「g」がサポートされています。
- core.packedGitLimit
-
パックファイルから同時にメモリにマッピングする最大バイト数。Gitが操作を完了するためにこのバイト数を超えるアクセスを一度に行う必要がある場合、既存の領域をアンマップしてプロセス内の仮想アドレス空間を解放します。
デフォルトは32ビットプラットフォームでは256MiB、64ビットプラットフォームでは32TiB(実質無制限)です。これは、最大のプロジェクトを除いて、すべてのユーザー/オペレーティングシステムにとって妥当なはずです。通常、この値を調整する必要はありません。
一般的な単位の接尾辞「k」、「m」、「g」がサポートされています。
- core.deltaBaseCacheLimit
-
複数の差分化されたオブジェクトによって参照される可能性のあるベースオブジェクトをキャッシュするために、スレッドごとに予約する最大バイト数。非圧縮のベースオブジェクト全体をキャッシュに格納することで、Gitは頻繁に使用されるベースオブジェクトを複数回アンパックおよび非圧縮するのを避けることができます。
すべてのプラットフォームでデフォルトは96MiBです。これは、最大のプロジェクトを除いて、すべてのユーザー/オペレーティングシステムにとって妥当なはずです。通常、この値を調整する必要はありません。
一般的な単位の接尾辞「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 はそのディレクトリ(例:/etc/git/hooks/pre-receive
)でフックを探そうとします。$GIT_DIR/hooks/pre-receive
の代わりです。パスは絶対パスでも相対パスでもかまいません。相対パスは、フックが実行されるディレクトリからの相対パスとして扱われます(githooks[5] の「DESCRIPTION」セクションを参照)。
この設定変数は、Gitフックをリポジトリごとに設定する代わりに一元的に設定したい場合や、デフォルトフックを変更した
init.templateDir
を使用するよりも柔軟で一元的な代替手段として役立ちます。core.hooksPath
を/dev/null
に設定することで、すべてのフックを完全に無効にすることもできます。これは通常、熟練ユーザー向けであり、git
-c
core.hooksPath=/dev/null
... の形式の設定パラメータを使用してコマンドごとに設定する場合にのみ推奨されます。 - 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と新しいバージョンのGitの両方で使用する予定がある場合は、両方を指定することをお勧めします。[core] # single character for older versions commentChar = "#" # string for newer versions (which will override commentChar # because it comes later in the file) commentString = "//"
- core.filesRefLockTimeout
-
個々の参照をロックしようとするときに再試行する時間(ミリ秒単位)。値が0の場合は再試行せず、-1の場合は無期限に再試行します。デフォルトは100(つまり、100ms再試行)です。
- core.packedRefsTimeout
-
packed-refs
ファイルをロックしようとするときに再試行する時間(ミリ秒単位)。値0は全く再試行しないことを意味し、-1は無期限に再試行することを意味します。デフォルトは1000(つまり、1秒間再試行)です。 - core.pager
-
Gitコマンド(例: *less*)で使用するテキストビューア。値はシェルによって解釈されることを意図しています。優先順位は、
$GIT_PAGER
環境変数、次にcore.pager
設定、次に$PAGER
、そしてコンパイル時に選択されたデフォルト(通常は*less*)です。LESS
環境変数が設定されていない場合、GitはそれをFRX
に設定します(LESS
環境変数が設定されている場合、Gitはそれを全く変更しません)。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によって強化されるべきもの。プレフィックスに-を付けることで、任意のコンポーネントの強化を無効にできます。強化されていないアイテムは、システムが不潔にシャットダウンした場合に失われる可能性があります。特別な要件がない限り、このオプションを空にするか、
committed
、added
、またはall
のいずれかを選択することをお勧めします。この設定が検出されると、コンポーネントのセットはプラットフォームのデフォルト値から始まり、無効なコンポーネントが削除され、追加のコンポーネントが追加されます。
none
は状態をリセットし、プラットフォームのデフォルトが無視されるようにします。空文字列は、fsyncの設定をプラットフォームのデフォルトにリセットします。ほとんどのプラットフォームでのデフォルトは
core.fsync=committed,-loose-object
と同等であり、パフォーマンスは優れていますが、システムが不潔にシャットダウンした場合に最近の作業が失われるリスクがあります。-
none
はfsyncedコンポーネントのセットをクリアします。 -
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
は、writeout-only フラッシュを使用して複数の更新をディスクライトバックキャッシュにステージングし、操作の最後にダミーファイルの単一の完全な fsync を実行してディスクキャッシュのフラッシュをトリガーするモードを有効にします。現在、
batch
モードはルーズオブジェクトファイルにのみ適用されます。他のリポジトリデータはfsync
が指定されたかのように永続化されます。このモードは、HFS+またはAPFSファイルシステム上のリポジトリに格納されたmacOSと、NTFSまたはReFSファイルシステム上のリポジトリに格納されたWindowsでは、fsync
と同じくらい安全であると予想されます。
-
- core.fsyncObjectFiles
-
このブール値は、オブジェクトファイル書き込み時に*fsync()*を有効にします。この設定は非推奨です。代わりにcore.fsyncを使用してください。
この設定は、Gitリポジトリにルーズオブジェクト形式で追加されるデータに影響します。trueに設定すると、Gitはfsyncまたは類似のシステムコールを発行してキャッシュをフラッシュし、システムが不潔にシャットダウンした場合でもルーズオブジェクトの一貫性を保ちます。
- core.preloadIndex
-
*git diff*のような操作で並列インデックスプリロードを有効にする
これにより、特にNFSのようにキャッシュセマンティクスが弱く、IO遅延が比較的高いファイルシステムでは、*git diff*や*git status*などの操作を高速化できます。有効にすると、Gitはファイルシステムデータとのインデックス比較を並行して行い、IOをオーバーラップさせることができます。デフォルトはtrueです。
- core.unsetenvvars
-
Windowsのみ:他のプロセスを起動する前に解除する必要がある環境変数名のカンマ区切りリストです。Git for Windowsが独自のPerlインタープリタの使用に固執しているという事実を考慮して、デフォルトは
PERL5LIB
です。 - core.restrictinheritedhandles
-
Windowsのみ:起動されたプロセスが標準ファイルハンドル(
stdin
、stdout
、stderr
)のみを継承するか、すべてのハンドルを継承するかを上書きします。auto
、true
、またはfalse
に設定できます。デフォルトはauto
で、Windows 7以降ではtrue
、それより古いWindowsバージョンではfalse
を意味します。 - core.createObject
-
これを*link*に設定すると、ハードリンクとソースの削除が使用され、オブジェクトの作成が既存のオブジェクトを上書きしないようにします。
一部のファイルシステムとオペレーティングシステムの組み合わせでは、これは信頼できません。そのような場合は、この設定を*rename*に設定してください。ただし、これにより、既存のオブジェクトファイルが上書きされないことを確認するチェックが削除されます。
- core.notesRef
-
コミットメッセージを表示するときに、指定された参照に保存されているノートも表示します。参照は完全に修飾されている必要があります。指定された参照が存在しない場合、それはエラーではなく、ノートを何も表示すべきではないことを意味します。
この設定はデフォルトで"refs/notes/commits"であり、
GIT_NOTES_REF
環境変数で上書きできます。git-notes[1]を参照してください。 - core.commitGraph
-
trueの場合、gitはコミットグラフファイル(存在する場合)を読み込み、コミットのグラフ構造を解析します。デフォルトはtrueです。詳細についてはgit-commit-graph[1]を参照してください。
- core.useReplaceRefs
-
false
に設定されている場合、コマンドラインで--no-replace-objects
オプションが指定されたかのように動作します。詳細については、git[1]およびgit-replace[1]を参照してください。 - core.multiPackIndex
-
単一のインデックスを使用して複数のパックファイルを追跡するために、マルチパックインデックスファイルを使用します。詳細についてはgit-multi-pack-index[1]を参照してください。デフォルトはtrueです。
- core.sparseCheckout
-
「スパースチェックアウト」機能を有効にします。詳細についてはgit-sparse-checkout[1]を参照してください。
- core.sparseCheckoutCone
-
スパースチェックアウト機能の「コーンモード」を有効にします。スパースチェックアウトファイルに限定されたパターンセットが含まれている場合、このモードは大幅なパフォーマンス上の利点を提供します。より柔軟なパターンを指定できるように「非コーンモード」を要求するには、この変数を*false*に設定します。詳細については、git-sparse-checkout[1]を参照してください。
- core.abbrev
-
オブジェクト名が短縮される長さを設定します。指定されていないか「auto」に設定されている場合、リポジトリ内のパックオブジェクトのおおよその数に基づいて適切な値が計算されます。これにより、短縮されたオブジェクト名がしばらくの間一意性を保つのに十分な長さになることが期待されます。「no」に設定されている場合、短縮は行われず、オブジェクト名は完全な長さで表示されます。最小長は4です。
- core.maxTreeDepth
-
Gitがツリーを走査する際に再帰する最大深度(例: "a/b/cde/f"の深度は4)。これは、Gitがクリーンに中止できるようにするフェイルセーフであり、通常は調整する必要はありません。GitがMSVCでコンパイルされた場合、デフォルトは512です。それ以外の場合、デフォルトは2048です。
- credential.helper
-
ユーザー名またはパスワードの認証情報が必要な場合に呼び出す外部ヘルパーを指定します。ヘルパーは、ユーザーに認証情報を要求するのを避けるために外部ストレージを参照できます。これは通常、認証ヘルパーの名前とオプションの引数ですが、引数を伴う絶対パス、または
!
が前に付く場合はシェルコマンドでもかまいません。複数のヘルパーを定義できることに注意してください。詳細と例については、gitcredentials[7]を参照してください。
- credential.interactive
-
デフォルトでは、Gitと設定されているすべての認証ヘルパーは、新しい認証情報が必要な場合にユーザー入力を求めます。これらのヘルパーの多くは、保存された認証情報がまだ有効であれば、それに基づいて成功します。Gitからのユーザー対話の可能性を回避するには、
credential.interactive=false
を設定します。一部の認証ヘルパーもこのオプションを尊重します。 - credential.useHttpPath
-
認証情報を取得する際、httpまたはhttps URLの「パス」コンポーネントを重要視します。デフォルトは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 接続の場合のみデフォルトのユーザー名を設定します。URL の一致方法の詳細については、gitcredentials[7] を参照してください。
- credentialCache.ignoreSIGHUP
-
git-credential-cache—daemonにSIGHUPを無視するように指示し、終了させません。
- credentialStore.lockTimeoutMS
-
git-credential-storeが認証情報ファイルをロックしようとするときに再試行する時間(ミリ秒単位)。0の値は全く再試行しないことを意味し、-1の値は無期限に試行することを意味します。デフォルトは1000(つまり、1秒間再試行)です。
diff.autoRefreshIndex
-
git
diff
を使用して作業ツリーファイルと比較する場合、statのみの変更を「変更された」と見なさないでください。代わりに、git
update-index
--refresh
をサイレントに実行して、作業ツリー内の内容がインデックス内の内容と一致するパスのキャッシュされたstat情報を更新します。このオプションのデフォルトはtrue
です。これはgit
diff
Porcelainにのみ影響し、git
diff-files
のような低レベルのdiff
コマンドには影響しないことに注意してください。 diff.dirstat
-
git-diff[1]および関連コマンドの
--dirstat
オプションのデフォルト動作を指定する、カンマ区切りの--dirstat
パラメータリストです。デフォルトはコマンドラインで上書きできます(--dirstat=
<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 アルゴリズムを選択します。バリアントは以下の通りです
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
の値と異なる必要があります。これにより、オブジェクト形式がこのcompatObjectFormatと一致するgitリポジトリ間でのクライアントレベルの相互運用性が可能になります。特に完全に実装された場合、オブジェクト形式がcompatObjectFormatと一致するリポジトリからのプッシュとプルが可能です。また、objectFormatでエンコードされたoidに加えてcompatObjectFormatでエンコードされたoidを使用してローカルでオブジェクトを指定することもできます。 - noop
-
この拡張機能は、Gitの動作を全く変更しません。フォーマット1の互換性をテストする場合にのみ役立ちます。
歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
の設定に関わらず尊重されます。 - noop-v1
-
この拡張機能は、Gitの動作を全く変更しません。フォーマット1の互換性をテストする場合にのみ役立ちます。
- objectFormat
-
使用するハッシュアルゴリズムを指定します。許容される値は
sha1
とsha256
です。指定されていない場合、sha1
が仮定されます。この設定は、git-init[1]またはgit-clone[1]でのみ設定されるべきであることに注意してください。初期化後に変更しようとすると機能せず、診断が困難な問題が発生します。
- partialClone
-
有効にすると、リポジトリが部分クローンで作成された(または後に部分フェッチを実行した)こと、およびリモートが特定の不要なオブジェクトの送信を省略した可能性があることを示します。このようなリモートは「プロミサーリモート」と呼ばれ、将来的にそのような省略されたすべてのオブジェクトをそこからフェッチできることを約束します。
このキーの値は、プロミサーリモートの名前です。
歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
の設定に関わらず尊重されます。 - preciousObjects
-
有効になっている場合、リポジトリ内のオブジェクトは削除してはならないことを示します(例:
git-prune
やgit
repack
-d
による)。歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
の設定に関わらず尊重されます。 - refStorage
-
使用するrefストレージ形式を指定します。許容される値は次のとおりです。
-
files
は、packed-refs を使用するルーズファイル用です。これがデフォルトです。 -
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
に移動する必要があります。
また、各ワークツリーのカスタマイズ可能なスパースチェックアウト設定の要望に応じて、
core.sparseCheckout
およびcore.sparseCheckoutCone
の場所を調整することも有益かもしれません。デフォルトでは、git
sparse-checkout
組み込みコマンドはこの拡張機能を有効にし、これらの設定値をワークツリーごとに割り当て、$GIT_DIR/info/sparse-checkout
ファイルを使用して各ワークツリーの疎度を独立して指定します。詳細については、git-sparse-checkout[1]を参照してください。+ 歴史的な理由により、この拡張機能は
core.repositoryFormatVersion
設定に関わらず尊重されます。 -
- fastimport.unpackLimit
-
git-fast-import[1]によってインポートされたオブジェクトの数がこの制限を下回る場合、オブジェクトはルーズオブジェクトファイルに展開されます。ただし、インポートされたオブジェクトの数がこの制限に達するか超える場合、パックはパックとして保存されます。fast-importからパックを保存すると、特に低速なファイルシステムではインポート操作がより速く完了する可能性があります。設定されていない場合、代わりに
transfer.unpackLimit
の値が使用されます。 - feature.*
-
feature.
で始まる設定は、他の設定グループのデフォルトを変更します。これらのグループはGit開発者コミュニティによって推奨されるデフォルトとして作成されており、変更される可能性があります。特に、新しい設定オプションが異なるデフォルトで追加される可能性があります。 - feature.experimental
-
Gitの新機能であり、将来のデフォルトとして検討されている設定オプションを有効にします。ここに含まれる設定は、マイナーバージョンアップを含む各リリースで追加または削除される可能性があります。これらの設定は非常に新しいため、予期しない相互作用がある可能性があります。実験的な機能に関するフィードバックを提供することに関心がある場合は、この設定を有効にしてください。新しいデフォルト値は次のとおりです。
-
fetch.negotiationAlgorithm=skipping
により、より多くのコミットを一度にスキップしてフェッチ交渉時間を改善し、ラウンドトリップの数を減らす可能性があります。 -
pack.useBitmapBoundaryTraversal=true
により、少ないオブジェクトを辿ることでビットマップ走査時間を改善する可能性があります。 -
pack.allowPackReuse=multi
により、1つだけでなく複数のパックからオブジェクトを再利用することでパック作成時間を改善する可能性があります。
-
- feature.manyFiles
-
作業ディレクトリに多数のファイルを持つリポジトリに最適化された設定オプションを有効にします。多数のファイルでは、
git
status
やgit
checkout
などのコマンドが遅くなることがありますが、これらの新しいデフォルトはパフォーマンスを向上させます。-
index.skipHash=true
は、末尾のチェックサムを計算しないことでインデックス書き込みを高速化します。これにより、2.13.0より前のGitバージョンではインデックスの解析を拒否し、2.40.0より前のGitバージョンではgit
fsck
中にインデックスが破損していると報告することに注意してください。 -
index.version=4
は、インデックス内のパスプレフィックス圧縮を有効にします。 -
core.untrackedCache=true
は、未追跡キャッシュを有効にします。この設定は、お使いのマシンでmtimeが機能していることを前提としています。
-
- fetch.recurseSubmodules
-
このオプションは、
git
fetch
(およびgit
pull
の基礎となるfetch)が、移入されたサブモジュールに再帰的にフェッチするかどうかを制御します。このオプションは、ブール値または*on-demand*に設定できます。ブール値に設定すると、trueに設定された場合は無条件にサブモジュールに再帰し、falseに設定された場合は全く再帰しないようにfetchおよびpullの動作が変更されます。*on-demand*に設定された場合、fetchおよびpullは、スーパープロジェクトがサブモジュールの参照を更新するコミットを取得した場合にのみ、移入されたサブモジュールに再帰します。デフォルトは*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/*
のrefspecが提供されたかのように自動的に動作します。これにより、このオプションとfetch.prune
の両方を設定して、上流のリファレンスとの1対1のマッピングを維持できます。remote.
<name>.pruneTags
とgit-fetch[1]のPRUNINGセクションも参照してください。 - fetch.all
-
trueの場合、fetchは利用可能なすべてのリモートを更新しようとします。この動作は
--no-all
を渡すか、フェッチするリモートを明示的に1つ以上指定することで上書きできます。デフォルトはfalseです。 - fetch.output
-
参照更新ステータスの表示方法を制御します。有効な値は
full
とcompact
です。デフォルト値はfull
です。詳細については、git-fetch[1]のOUTPUTセクションを参照してください。 - fetch.negotiationAlgorithm
-
サーバーから送信されるパックファイルの内容をネゴシエートする際に、ローカルリポジトリ内のコミットに関する情報がどのように送信されるかを制御します。各コミットをチェックしながら連続してコミットをたどるアルゴリズムを使用するには「consecutive」に設定します。より速く収束しようとコミットをスキップするアルゴリズムを使用するには「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
オプションの動作に似ています。git
clone
--bundle-uri
は、提供されたバンドル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エンコーディング」(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
スレッドでは、すべてのメールが前のメールへの返信になります。真のブール値はshallow
と同じで、偽の値はスレッドを無効にします。 - 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
を使用して問題のある既存のオブジェクトを列挙する方が良いです。後者を行うと、同じ壊れ方の新しいインスタンスが見過ごされる可能性があります。未知の
fsck.
<msg-id> 値を設定すると fsck が終了しますが、receive.fsck.
<msg-id> およびfetch.fsck.
<msg-id> に対して同じことを行っても git は警告を発するだけです。<msg-id> のサポートされている値については、git-fsck[1] の
Fsck
Messages
セクションを参照してください。 - fsck.skipList
-
致命的ではない方法で破損していることが知られており、無視されるべきオブジェクト名(つまり、1行に1つの省略されていないSHA-1)のリストへのパス。Git 2.20 以降のバージョンでは、コメント(#)、空行、および先頭と末尾の空白は無視されます。古いバージョンでは、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
が設定されていない場合、最大のパックも除外されます(これは--keep-largest-pack
を指定してgit
gc
を実行するのと同等です)。 - 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 の代替メカニズムを使用してアクセスできる必要があります。そうでない場合、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
-
データベースユーザーとパスワード。
gitcvs.dbDriver
を設定する場合にのみ役立ちます。SQLite にはデータベースユーザーやパスワードの概念がないためです。gitcvs.dbUser は変数置換をサポートしています(詳細は git-cvsserver[1] を参照)。 - gitcvs.dbTableNamePrefix
-
データベーステーブル名のプレフィックス。使用されるデータベーステーブルの名前の前に付加され、単一のデータベースを複数のリポジトリで使用できるようにします。変数置換をサポートします(詳細については git-cvsserver[1] を参照)。非英字はすべてアンダースコアに置き換えられます。
gitcvs.usecrlfattr
と gitcvs.allBinary
以外のすべての gitcvs 変数は、gitcvs.<access_method>.<varname> (ここで access_method は "ext" または "pserver" のいずれか) としても指定でき、指定されたアクセス方法にのみ適用されます。
- gitweb.category
- gitweb.description
- gitweb.owner
- gitweb.url
-
説明については gitweb[1] を参照してください。
- gitweb.avatar
- gitweb.blame
- gitweb.grep
- gitweb.highlight
- gitweb.patches
- gitweb.pickaxe
- gitweb.remote_heads
- gitweb.showSizes
- gitweb.snapshot
-
説明については gitweb.conf[5] を参照してください。
- gpg.program
-
PGP署名の作成または検証時に、
$PATH
で見つかる「gpg
」の代わりにこのカスタムプログラムを使用します。プログラムはGPGと同じコマンドラインインターフェースをサポートしている必要があり、つまり、分離された署名を検証するには「gpg --verify $signature - <$file」が実行され、プログラムはコード0で終了することで良好な署名であることを示します。ASCII装甲の分離された署名を生成するには、「gpg
-bsau
$key
」の標準入力に署名する内容が供給され、プログラムは結果を標準出力に送信すると予想されます。 - gpg.format
-
--gpg-sign
で署名する際に使用するキー形式を指定します。デフォルトは「openpgp」です。その他の可能な値は「x509」、「ssh」です。署名形式については 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 公開鍵を含むファイル。このファイルは、1つ以上のプリンシパル行とそれに続く ssh 公開鍵で構成されます。例:
user1@example.com,user2@example.com
ssh-rsa
AAAAX1...
詳細については、ssh-keygen(1) の「ALLOWED SIGNERS」を参照してください。プリンシパルは鍵を識別するためにのみ使用され、署名を検証する際に利用可能です。SSH には gpg のような信頼レベルの概念はありません。有効な署名と信頼できる署名を区別できるように、公開鍵が allowedSignersFile に存在する場合、署名検証の信頼レベルは
fully
に設定されます。それ以外の場合、信頼レベルはundefined
となり、git verify-commit/tag は失敗します。このファイルはリポジトリの外部の場所に設定でき、各開発者は独自の信頼ストアを管理できます。中央リポジトリサーバーは、プッシュアクセスを持つSSHキーからこのファイルを自動的に生成して、コードを検証できます。企業環境では、このファイルは通常、開発者SSHキーを既に処理している自動化システムからグローバルな場所で生成されます。
署名付きコミットのみを許可するリポジトリは、作業ツリーのトップレベルからの相対パスを使用して、ファイル自体をリポジトリ内に保存できます。これにより、既に有効なキーを持つコミッターのみがキーリングにキーを追加または変更できます。
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 として受け取られます(ヘッドがデタッチされている場合、CUR_BRANCH は空です)。 - guitool.<name>.needsFile
-
GUI で差分が選択されている場合にのみツールを実行します。これにより、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つ識別できる場合、正しいコマンドを提案するか、自動的に提案を実行しようとします。考えられる設定値は次のとおりです。
-
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 基本認証 -
digest
- HTTP ダイジェスト認証。これにより、パスワードがプレーンテキストでプロキシに送信されるのを防ぎます。 -
negotiate
- GSS-Negotiate 認証(curl
(1
) の --negotiate オプションと比較) -
ntlm
- NTLM 認証(curl
(1
) の --ntlm オプションと比較)
-
- http.proxySSLCert
-
HTTPSプロキシで認証するために使用するクライアント証明書を格納するファイルのパス名。
GIT_PROXY_SSL_CERT
環境変数で上書きできます。 - http.proxySSLKey
-
HTTPSプロキシで認証するために使用する秘密鍵を格納するファイルのパス名。
GIT_PROXY_SSL_KEY
環境変数で上書きできます。 - http.proxySSLCertPasswordProtected
-
プロキシSSL証明書のGitのパスワードプロンプトを有効にします。そうしないと、証明書または秘密鍵が暗号化されている場合、OpenSSLがユーザーに(おそらく何度も)プロンプトを表示します。
GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED
環境変数で上書きできます。 - http.proxySSLCAInfo
-
HTTPSプロキシを使用する際にプロキシを検証するために使用すべき証明書バンドルを含むファイルのパス名。
GIT_PROXY_SSL_CAINFO
環境変数で上書きできます。 - http.emptyAuth
-
ユーザー名やパスワードを要求せずに認証を試みます。これは、URL にユーザー名を指定せずに GSS-Negotiate 認証を試みるために使用できます。libcurl は通常、認証にユーザー名を要求するためです。
- http.proactiveAuth
-
認証なしの試行を最初に行わず、401応答を受け取る前に認証を試みます。これは、すべてのリクエストが認証されることを保証するために使用できます。
http.emptyAuth
が true に設定されている場合、この値は効果がありません。使用されるクレデンシャルヘルパーが認証スキーム(つまり、
authtype
フィールドを介して)を指定する場合、その値が使用されます。スキームなしでユーザー名とパスワードが提供される場合、基本認証が使用されます。オプションの値は、ヘルパーから要求されるスキームを決定します。可能な値は次のとおりです。-
basic
- ヘルパーに基本認証を要求します。 -
auto
- ヘルパーに適切なスキームを選択させます。 -
none
- プロアクティブ認証を無効にします。
この設定では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.cookieFile で指定されたファイルは、http.saveCookies が設定されていない限り、入力としてのみ使用されることに注意してください。 - http.saveCookies
-
設定されている場合、リクエスト中に受信したCookieをhttp.cookieFileで指定されたファイルに保存します。http.cookieFileが設定されていないか、空文字列に設定されている場合は効果はありません。
- http.version
-
サーバーと通信する際に、指定されたHTTPプロトコルバージョンを使用します。デフォルトを強制したい場合。利用可能なバージョンとデフォルトバージョンは libcurl に依存します。現在、このオプションの可能な値は次のとおりです。
-
HTTP/2
-
HTTP/1.1
-
- http.curloptResolve
-
HTTP リクエスト送信時に libcurl が最初に利用するホスト名解決情報です。この情報は以下のいずれかの形式である必要があります。
-
[+]HOST:PORT:ADDRESS[,ADDRESS]
-
-HOST:PORT
最初の形式は、指定された
HOST:PORT
へのすべてのリクエストを、提供されたADDRESS
にリダイレクトします。2番目の形式は、そのHOST:PORT
の組み合わせの以前のすべての設定値をクリアします。システム設定から継承されたすべての設定を簡単に上書きできるように、空の値はすべての解決情報を空のリストにリセットします。 -
- http.sslVersion
-
SSL接続をネゴシエートする際に使用するSSLバージョン(デフォルトを強制したい場合)。利用可能なバージョンとデフォルトバージョンは、libcurlがNSSまたはOpenSSLに対してビルドされたかどうか、および使用中の暗号ライブラリの特定の構成によって異なります。内部的には CURLOPT_SSL_VERSION オプションを設定します。このオプションの形式とサポートされているSSLバージョンについては、libcurlのドキュメントを参照してください。現在、このオプションの可能な値は次のとおりです。
-
sslv2
-
sslv3
-
tlsv1
-
tlsv1.0
-
tlsv1.1
-
tlsv1.2
-
tlsv1.3
GIT_SSL_VERSION
環境変数で上書きできます。Git に libcurl のデフォルトの ssl バージョンを使用させ、明示的な http.sslversion オプションを無視させるには、GIT_SSL_VERSION
を空文字列に設定します。 -
- http.sslCipherList
-
SSL接続をネゴシエートする際に使用するSSL暗号のリスト。利用可能な暗号は、libcurlがNSSまたはOpenSSLに対してビルドされたかどうか、および使用中の暗号ライブラリの特定の構成によって異なります。内部的には CURLOPT_SSL_CIPHER_LIST オプションを設定します。このリストの形式の詳細については、libcurlのドキュメントを参照してください。
GIT_SSL_CIPHER_LIST
環境変数で上書きできます。Git に libcurl のデフォルトの暗号リストを使用させ、明示的な http.sslCipherList オプションを無視させるには、GIT_SSL_CIPHER_LIST
を空文字列に設定します。 - http.sslVerify
-
HTTPS を介してフェッチまたはプッシュする際に SSL 証明書を検証するかどうか。デフォルトは true です。
GIT_SSL_NO_VERIFY
環境変数で上書きできます。 - http.sslCert
-
HTTPS を介してフェッチまたはプッシュする際に SSL 証明書を含むファイル。
GIT_SSL_CERT
環境変数で上書きできます。 - http.sslKey
-
HTTPS を介してフェッチまたはプッシュする際に SSL 秘密鍵を含むファイル。
GIT_SSL_KEY
環境変数で上書きできます。 - http.sslCertPasswordProtected
-
SSL証明書に対する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 を介してフェッチまたはプッシュする際に使用されるクライアント証明書のタイプ。「PEM」、「DER」は openssl または gnutls バックエンドを使用する場合にサポートされます。「P12」は「openssl」、「schannel」、「securetransport」、および gnutls 8.11+ でサポートされます。libcurl
CURLOPT_SSLCERTTYPE
も参照してください。GIT_SSL_CERT_TYPE
環境変数で上書きできます。 - http.sslKeyType
-
HTTPS を介してフェッチまたはプッシュする際に使用されるクライアント秘密鍵のタイプ(例:「PEM」、「DER」、または「ENG」)。「openssl」バックエンドを使用する場合にのみ適用されます。「DER」は openssl ではサポートされていません。特に PKCS#11 トークンで認証するために「ENG」に設定し、sslCert オプションで PKCS#11 URL を使用する場合に役立ちます。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 証明書ストアを上書きします。これはデフォルトでは望ましくないため、schannel
バックエンドがhttp.sslBackend
経由で設定された場合、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.keepAliveIdle
-
アイドル状態の接続で、TCPキープアライブプローブを送信するまでの秒数(OSがサポートしている場合)。設定されていない場合、curlのデフォルト値が使用されます。
GIT_HTTP_KEEPALIVE_IDLE
環境変数で上書きできます。 - http.keepAliveInterval
-
TCPキープアライブプローブ間の待機秒数を指定します(OSがサポートしている場合)。設定されていない場合、curlのデフォルト値が使用されます。
GIT_HTTP_KEEPALIVE_INTERVAL
環境変数で上書きできます。 - http.keepAliveCount
-
諦めて接続を終了するまでに送信するTCPキープアライブプローブの数を指定します(OSがサポートしている場合)。設定されていない場合、curlのデフォルト値が使用されます。
GIT_HTTP_KEEPALIVE_COUNT
環境変数で上書きできます。 - 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グラフィカル履歴ブラウザ(将来的に他の場所や他のPorcelainでも)で必要です。例えば 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 はパッチを plain/text, format=fixed のメールとして送信します。デフォルトは
false
です。 - imap.authMethod
-
IMAP サーバーでの認証に使用する認証方法を指定します。Git が NO_CURL オプションでビルドされている場合、または curl のバージョンが 7.34.0 より古い場合、または
--no-curl
オプションを指定して git-imap-send を実行している場合、サポートされている方法は CRAM-MD5 のみです。これが設定されていない場合、git imap-send は基本的な IMAP 平文 LOGIN コマンドを使用します。 - include.path
- includeIf.<condition>.path
-
他の設定ファイルを含めるための特殊変数。メインの git-config[1] ドキュメントの「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] によって起動された Web サーバーはローカル IP (127.0.0.1) にバインドされます。
- instaweb.modulePath
-
git-instaweb[1] が /usr/lib/apache2/modules の代わりに使用するデフォルトのモジュールパス。httpd が Apache の場合にのみ使用されます。
- instaweb.port
-
gitweb httpd をバインドするポート番号。git-instaweb[1] を参照してください。
- interactive.singleKey
-
true に設定すると、対話型コマンドでユーザーが単一のキーで (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
など) がカラー化された差分を表示するとき、git はこの設定変数で定義されたシェルコマンドを介して差分をパイプします。このコマンドは、元の差分との行ごとの一対一の対応を維持する限り、差分をさらに人間が消費できるようにマークアップすることができます。デフォルトは無効 (フィルタリングなし) です。 - 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 の場合、最初のコミットは大きな作成イベントとして表示されます。これは空のツリーとの差分に相当します。git-log[1] や git-whatchanged[1] のような通常ルートコミットを非表示にするツールも、今後は表示するようになります。デフォルトは true です。
- log.showSignature
-
true の場合、git-log[1]、git-show[1]、および git-whatchanged[1] は
--show-signature
を想定します。 - log.mailmap
-
true の場合、git-log[1]、git-show[1]、および git-whatchanged[1] は
--use-mailmap
を想定し、それ以外の場合は--no-use-mailmap
を想定します。デフォルトは true です。 - lsrefs.unborn
-
"advertise" (デフォルト)、"allow"、または "ignore" のいずれかです。"advertise" の場合、サーバーはクライアントが "unborn" を送信することに応答し (gitprotocol-v2[5] に記述されているとおり)、プロトコル v2 機能アドバタイズ中にこの機能のサポートをアドバタイズします。"allow" は "advertise" と同じですが、サーバーはこの機能のサポートをアドバタイズしません。これは、原子的に更新できないロードバランシングされたサーバーなどに便利です。管理者は "allow" を設定し、しばらくしてから "advertise" を設定できます。
- mailinfo.scissors
-
true の場合、git-mailinfo[1] (および git-am[1]) は、コマンドラインで --scissors オプションが提供されたかのようにデフォルトで動作します。アクティブな場合、この機能は、はさみ線 (つまり、主に ">8"、"8<"、および "-" で構成される) の前にあるメッセージ本文からすべてを削除します。
- mailmap.file
-
拡張メールマップファイルの場所。リポジトリのルートにあるデフォルトのメールマップが最初にロードされ、次にこの変数で指定されたメールマップファイルがロードされます。メールマップファイルの場所は、リポジトリのサブディレクトリ内、またはリポジトリ自体の外部にすることができます。git-shortlog[1] および git-blame[1] を参照してください。
- mailmap.blob
-
mailmap.file
と同様ですが、値をリポジトリ内のブロブへの参照として扱います。mailmap.file
とmailmap.blob
の両方が指定されている場合、両方が解析され、mailmap.file
のエントリが優先されます。ベアリポジトリでは、デフォルトでHEAD:.mailmap
になります。非ベアリポジトリでは、デフォルトで空になります。 - maintenance.auto
-
このブール型設定オプションは、いくつかのコマンドが通常の作業を実行した後で
git
maintenance
run
--auto
を実行するかどうかを制御します。デフォルトは true です。 - maintenance.autoDetach
-
多くの Git コマンドは、リポジトリにデータを書き込んだ後に自動メンテナンスをトリガーします。このブール型設定オプションは、この自動メンテナンスをフォアグラウンドで実行するか、メンテナンスプロセスをデタッチしてバックグラウンドで実行し続けるかを制御します。
未設定の場合、
gc.autoDetach
の値がフォールバックとして使用されます。両方とも未設定の場合、デフォルトは true であり、メンテナンスプロセスはデタッチされます。 - maintenance.strategy
-
この文字列設定オプションは、バックグラウンドメンテナンスに推奨されるいくつかのスケジュールを指定する方法を提供します。これは、
git
maintenance
run
--schedule=X
コマンド中に実行されるタスクにのみ影響します。ただし、--task=
<task> 引数が指定されていない場合に限ります。さらに、maintenance.
<task>.schedule
設定値が設定されている場合、その値がmaintenance.strategy
によって提供される値の代わりに使用されます。可能な戦略文字列は次のとおりです。-
none
: このデフォルト設定は、どのスケジュールでもタスクが実行されないことを意味します。 -
incremental
: この設定は、データを削除しない小さなメンテナンスアクティビティを実行するように最適化されています。これはgc
タスクをスケジュールしませんが、prefetch
およびcommit-graph
タスクを毎時、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
-
この整数設定オプションは、
commit-graph
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、commit-graph
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、コミットグラフファイルに存在しない到達可能なコミットの数がmaintenance.commit-graph.auto
の値以上の場合にコマンドを実行すべきであることを意味します。デフォルト値は 100 です。 - maintenance.loose-objects.auto
-
この整数設定オプションは、
loose-objects
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、loose-objects
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、ルーズオブジェクトの数がmaintenance.loose-objects.auto
の値以上の場合にコマンドを実行すべきであることを意味します。デフォルト値は 100 です。 - maintenance.loose-objects.batchSize
-
この整数設定オプションは、
loose-objects
タスク中にパックファイルに書き込まれるルーズオブジェクトの最大数を制御します。デフォルトは 50,000 です。制限なしを示すには0
の値を使用します。 - maintenance.incremental-repack.auto
-
この整数設定オプションは、
incremental-repack
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、incremental-repack
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、マルチパックインデックスにないパックファイルの数がmaintenance.incremental-repack.auto
の値以上の場合にコマンドを実行すべきであることを意味します。デフォルト値は 10 です。 - maintenance.reflog-expire.auto
-
この整数設定オプションは、
reflog-expire
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、reflog-expire
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、"HEAD" reflog の期限切れの reflog エントリの数がmaintenance.loose-objects.auto
の値以上の場合にコマンドを実行すべきであることを意味します。デフォルト値は 100 です。 - maintenance.rerere-gc.auto
-
この整数設定オプションは、
rerere-gc
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、rerere-gc
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、"rr-cache" ディレクトリが存在し、古くなっているかどうかにかかわらず、少なくとも 1 つのエントリがある場合にコマンドを実行することを意味します。このヒューリスティックは将来的に改善される可能性があります。デフォルト値は 1 です。 - maintenance.worktree-prune.auto
-
この整数設定オプションは、
worktree-prune
タスクがgit
maintenance
run
--auto
の一部としてどのくらいの頻度で実行されるべきかを制御します。ゼロの場合、worktree-prune
タスクは--auto
オプションでは実行されません。負の値は、タスクを毎回強制的に実行します。それ以外の場合、正の値は、プルーニング可能なワークツリーの数が値を超えた場合にコマンドを実行すべきであることを意味します。デフォルト値は 1 です。 - 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
-
マージがコミット引数なしで呼び出された場合、現在のブランチに設定されているアップストリームブランチを、リモート追跡ブランチに保存されている最後に観測された値を使用してマージします。
branch.
<current-branch>.remote
で指定されたリモートのブランチに名前を付ける branch.<current branch>.merge の値が参照され、次にそれらがremote.
<remote>.fetch
を介して対応するリモート追跡ブランチにマッピングされ、これらの追跡ブランチの先端がマージされます。デフォルトは true です。 merge.ff
-
デフォルトでは、Git は現在のコミットの子孫であるコミットをマージするときに余分なマージコミットを作成しません。代わりに、現在のブランチの先端が fast-forward されます。
false
に設定すると、この変数は Git にそのような場合に余分なマージコミットを作成するように指示します (コマンドラインから--no-ff
オプションを指定するのと同等)。only
に設定すると、そのような fast-forward マージのみが許可されます (コマンドラインから--ff-only
オプションを指定するのと同等)。 merge.verifySignatures
-
true の場合、これは
--verify-signatures
コマンドラインオプションと同等です。詳細については git-merge[1] を参照してください。 merge.branchdesc
-
ブランチ名に加えて、それらに関連付けられたブランチ記述テキストでログメッセージを埋めます。デフォルトは false です。
merge.log
-
ブランチ名に加えて、マージされる実際のコミットから、最大で指定された数の一行説明でログメッセージを埋めます。デフォルトは false で、true は 20 の同義語です。
merge.suppressDest
-
この多値設定変数に統合ブランチの名前と一致するグロブを追加すると、これらの統合ブランチへのマージに対して計算されるデフォルトのマージメッセージは、タイトルから「into <branch-name>」を省略します。
空の値を持つ要素は、以前の設定エントリから累積されたグロブのリストをクリアするために使用できます。
merge.suppressDest
変数が定義されていない場合、後方互換性のためにmaster
のデフォルト値が使用されます。 merge.renameLimit
-
マージ中の名前変更検出の網羅的な部分で考慮するファイルの数。指定しない場合、diff.renameLimit の値がデフォルトになります。merge.renameLimit と diff.renameLimit の両方が指定されていない場合、現在のデフォルトは 7000 です。名前変更検出がオフの場合、この設定は影響しません。
merge.renames
-
Git が名前変更を検出するかどうか。
false
に設定すると、名前変更検出は無効になります。true
に設定すると、基本的な名前変更検出が有効になります。diff.renames の値にデフォルト設定されます。 merge.directoryRenames
-
Git がディレクトリの名前変更を検出するかどうか。これにより、履歴の一方の側でディレクトリの名前が変更されたときに、履歴のもう一方の側でそのディレクトリに追加された新しいファイルがマージ時にどうなるかに影響します。可能な値は次のとおりです。
merge.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
とマージ結果の間の差分統計を出力するかどうか。デフォルトは 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.
<variant>.layout
-
vimdiff の <variant> (
vimdiff
,nvimdiff
,gvimdiff
のいずれか) の分割ウィンドウレイアウトを設定します。--tool=
<variant> でgit
mergetool
を起動すると (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
で設定されたデフォルトのセットに加えて、どの参照 (またはグロブまたは複数回指定された場合は複数の参照) からメモを読み込むか。この設定は、環境変数
GIT_NOTES_DISPLAY_REF
で上書きできます。これはコロン区切りのリファレンスまたはグロブのリストである必要があります。存在しないリファレンスに対しては警告が発行されますが、どのリファレンスとも一致しないグロブは silently 無視されます。
この設定は、git-log[1] ファミリーコマンドの
--no-notes
オプション、またはこれらのコマンドが受け入れる--notes=
<ref> オプションによって無効にすることができます。core.notesRef
の実効値(GIT_NOTES_REF
によって上書きされる場合があります)も、表示される参照のリストに暗黙的に追加されます。 notes.rewrite.
<command>-
<command> (現在のところ
amend
またはrebase
) でコミットを書き換える場合、この変数がfalse
であれば、git は元のコミットから書き換えられたコミットにノートをコピーしません。デフォルトはtrue
です。以下の notes.rewriteRef も参照してください。この設定は環境変数
GIT_NOTES_REWRITE_REF
で上書きできます。これはコロン区切りのリファレンスまたはグロブのリストである必要があります。 notes.rewriteMode
-
リライト中にメモをコピーするとき (
notes.rewrite.
<command> オプションを参照)、ターゲットコミットにすでにメモがある場合にどうするかを決定します。overwrite
、concatenate
、cat_sort_uniq
、またはignore
のいずれかである必要があります。デフォルトはconcatenate
です。この設定は、環境変数
GIT_NOTES_REWRITE_MODE
で上書きできます。 notes.rewriteRef
-
リライト中にノートをコピーする際、どの(完全修飾された)リファレンスのノートをコピーするかを指定します。グロブにすることも可能で、その場合、一致するすべてのリファレンスのノートがコピーされます。この設定を複数回指定することもできます。
デフォルト値はありません。ノートの書き換えを有効にするには、この変数を設定する必要があります。
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、4 GB を超えるパックと破損したパックの再パックに対する適切な保護機能を備えた新しいパックインデックスの場合は 2 です。バージョン 2 がデフォルトです。対応するパックが 2 GB を超える場合、バージョン 2 は強制され、この設定オプションは無視されることに注意してください。
バージョン 2 の
*.idx
ファイルを理解しない古い Git を持っている場合、非ネイティブプロトコル (例: "http") を介してクローンまたはフェッチを行うと、*.pack
ファイルと対応する*.idx
ファイルの両方を相手側からコピーするため、古いバージョンの Git ではアクセスできないリポジトリになる可能性があります。*.pack
ファイルが 2 GB 未満の場合、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 は (利用可能であれば) 標準出力へのパッキング時 (例: フェッチのサーバー側中) にパックビットマップを使用します。デフォルトは true です。パックビットマップのデバッグを行っている場合を除き、通常これをオフにする必要はありません。
- pack.useBitmapBoundaryTraversal
-
true の場合、Git はビットマップを使用した到達可能性クエリを計算するための実験的なアルゴリズムを使用します。否定されたすべての先端の完全なビットマップを構築してからそれらを OR する代わりに、既存のビットマップを持つ否定された先端を付加的であると見なし (つまり、存在する場合は結果に OR し、それ以外の場合は無視する)、代わりに境界でビットマップを構築します。
このアルゴリズムを使用すると、Git は特定の UNINTERESTING コミットに属するツリーを開かない結果として、過剰なオブジェクトを含める可能性があります。この不正確さは、非ビットマップトラバーサルアルゴリズムと一致します。
多くの場合、これは特にクエリの否定された側のビットマップカバレッジが低い場合に、正確なアルゴリズムよりも高速化を提供できます。
- pack.useSparse
-
true の場合、--revs オプションが存在するときに、git pack-objects でデフォルトで --sparse オプションを使用します。このアルゴリズムは、新しいオブジェクトを導入するパスに表示されるツリーのみを辿ります。これは、小さな変更を送信するパックを計算する際に、パフォーマンスに大きなメリットをもたらすことができます。ただし、含まれるコミットに特定の種類の直接的な名前変更が含まれている場合、追加のオブジェクトがパックファイルに追加される可能性があります。デフォルトは
true
です。 - pack.preferBitmapTips
-
ビットマップを受け取るコミットを選択するとき、この設定のいずれかの値のサフィックスである任意の参照の先端にあるコミットを、「選択ウィンドウ」内の他のコミットよりも優先します。
この設定を
refs/foo
に設定しても、refs/foo/bar
とrefs/foo/baz
の先端にあるコミットが必ずしも選択されるわけではないことに注意してください。これは、コミットが可変長の一連のウィンドウ内からビットマップのために選択されるためです。この設定のいずれかの値のサフィックスである任意の参照の先端にあるコミットがウィンドウ内で見られた場合、そのウィンドウ内の他のコミットよりも直ちに優先されます。
- pack.writeBitmaps (非推奨)
-
これは
repack.writeBitmaps
の非推奨の同義語です。 - pack.writeBitmapHashCache
-
true の場合、git はビットマップインデックス (書き込まれる場合) に「ハッシュキャッシュ」セクションを含めます。このキャッシュは、git のデルタヒューリスティックにフィードするために使用でき、ビットマップされたオブジェクトとビットマップされていないオブジェクトの間でより良いデルタにつながる可能性があります (例: 古いビットマップされたパックと、最後の gc 以降にプッシュされたオブジェクトの間でフェッチを処理する場合)。欠点は、ディスクスペースをオブジェクトあたり 4 バイト消費することです。デフォルトは true です。
マルチパック到達可能性ビットマップを書き込む場合、新しい名前ハッシュは計算されません。代わりに、既存のビットマップに格納されている名前ハッシュは、新しいビットマップを書き込むときに適切な場所に順列されます。
- 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」要求への応答から省略する可能性があることに同意します。名前とURLの比較はケースセンシティブです。gitprotocol-v2[5] を参照してください。
- protocol.allow
-
設定されている場合、明示的にポリシーを持たないすべてのプロトコル (
protocol.
<name>.allow
) に対して、ユーザー定義のデフォルトポリシーを提供します。デフォルトでは、設定されていない場合、既知の安全なプロトコル (http、https、git、ssh) はalways
のデフォルトポリシーを持ち、既知の危険なプロトコル (ext) はnever
のデフォルトポリシーを持ち、その他のすべてのプロトコル (ファイルを含む) は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
は含まれないことに注意してください。両方を設定したい場合は、個別に設定する必要があります。 -
外部ヘルパーはプロトコル名で指定されます (例:
hg
を使用してgit-remote-hg
ヘルパーを許可する)。
-
- protocol.version
-
設定されている場合、クライアントは指定されたプロトコルバージョンを使用してサーバーと通信しようとします。サーバーがそれをサポートしていない場合、通信はバージョン 0 にフォールバックします。設定されていない場合、デフォルトは
2
です。サポートされているバージョン:-
0
- 元のワイヤープロトコル。 -
1
- サーバーからの初期応答にバージョン文字列が追加された元のワイヤープロトコル。 -
2
- ワイヤープロトコルバージョン 2。gitprotocol-v2[5] を参照。
-
- pull.ff
-
デフォルトでは、Git は現在のコミットの子孫であるコミットをマージするときに余分なマージコミットを作成しません。代わりに、現在のブランチの先端が fast-forward されます。
false
に設定すると、この変数は Git にそのような場合に余分なマージコミットを作成するように指示します (コマンドラインから--no-ff
オプションを指定するのと同等)。only
に設定すると、そのような fast-forward マージのみが許可されます (コマンドラインから--ff-only
オプションを指定するのと同等)。この設定は、プル時に merge.ff を上書きします。 - pull.rebase
-
true の場合、「git pull」が実行されたときに、デフォルトのリモートからデフォルトブランチをマージする代わりに、フェッチされたブランチの上にブランチをリベースします。これをブランチごとに設定する方法については「branch.<name>.rebase」を参照してください。
merges
(または単に m) の場合、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の動作のように)、かつアップストリーム追跡も設定したい場合に便利です。このオプションから最も恩恵を受ける可能性のあるワークフローは、すべてのブランチがリモートで同じ名前を持つことが期待されるsimpleな集中ワークフローです。 - 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は、サーバーがサポートしている場合、--signed=if-asked
がgit pushに渡されたかのように、プッシュに署名を付けます。false値は、優先度の低い設定ファイルからの値を上書きできます。明示的なコマンドラインフラグは、常にこの設定オプションを上書きします。 - push.pushOption
-
コマンドラインから
--push-option=
<option>引数が与えられない場合、git
push
は、この変数の各が --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
-
インタラクティブなリベース中のtodoリストに使用される、git-log[1] で指定されたフォーマット文字列。フォーマットには、自動的にコミットハッシュが前に付加されます。
- 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からデータを受信し、参照を更新した後、「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は、ベアではないリポジトリの現在チェックアウトされているブランチを削除するref更新を拒否します。
- receive.denyCurrentBranch
-
trueまたは「refuse」に設定すると、git-receive-packは、ベアではないリポジトリの現在チェックアウトされているブランチへの参照更新を拒否します。このようなプッシュは、HEADがインデックスやワークツリーと同期しなくなる可能性があるため、潜在的に危険です。「warn」に設定すると、そのようなプッシュに関する警告を標準エラー出力に表示しますが、プッシュは続行されます。「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からデータを受信し、refを更新した後、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)に適している場合があります。
リスタートポイントの頻度が高いほど、プレフィックス圧縮が減少し、リスタートテーブルによって消費されるスペースが増加し、どちらもファイルサイズを増加させます。
リスタートポイントの頻度が低いほど、プレフィックス圧縮がより効果的になり、全体のファイルサイズが減少しますが、バイナリ検索ステップの後により多くのレコードをたどるリーダーのペナルティが増加します。
ブロックごとに最大
65535
のリスタートポイントがサポートされています。デフォルト値は16レコードごとにリスタートポイントを作成することです。
0
の値はデフォルト値を使用します。 - reftable.indexObjects
-
reftableバックエンドがオブジェクトブロックを書き込むかどうか。オブジェクトブロックは、オブジェクトIDからそれらを指す参照への逆マッピングです。
デフォルト値は
true
です。 - reftable.geometricFactor
-
reftable バックエンドが新しいテーブルをスタックに追加するたびに、少数のテーブルのみが存在するように自動圧縮を実行します。バックエンドは、各テーブルのそれぞれのサイズに関して、テーブルが幾何学的なシーケンスを形成するようにすることでこれを実現します。
デフォルトでは、幾何級数は2の因子を使用します。つまり、任意のテーブルに対して、次に大きいテーブルは少なくとも2倍の大きさでなければなりません。最大256の因子がサポートされています。
- reftable.lockTimeout
-
reftableバックエンドが新しいテーブルをスタックに追加するたびに、更新する前に中央の「tables.list」ファイルをロックする必要があります。この設定は、別のプロセスがすでにロックを取得している場合に、プロセスがロックを取得するまで待機する時間を制御します。値0はまったく再試行しないことを意味し、-1は無期限に試行することを意味します。デフォルトは100(つまり、100ミリ秒再試行)です。
- remote.pushDefault
-
デフォルトでプッシュするリモート。
branch.
<name>.remote
をすべてのブランチで上書きし、特定のブランチのbranch.
<name>.pushRemote
によって上書きされます。 - remote.<name>.url
-
リモートリポジトリのURL。git-fetch[1]またはgit-push[1]を参照してください。設定されたリモートは複数のURLを持つことができます。この場合、最初のURLはフェッチに使用され、すべてはプッシュに使用されます(
remote.
<name>.pushurl
が定義されていない場合)。このキーを空の文字列に設定すると、URLのリストがクリアされ、以前の設定を上書きできます。 - remote.<name>.pushurl
-
リモートリポジトリのプッシュURL。git-push[1]を参照してください。設定されたリモートに
pushurl
オプションが存在する場合、remote.
<name>.url
の代わりにプッシュに使用されます。設定されたリモートは複数のプッシュURLを持つことができます。この場合、プッシュはそれらすべてに行われます。このキーを空の文字列に設定すると、URLのリストがクリアされ、以前の設定を上書きできます。 - remote.<name>.proxy
-
curlを必要とするリモート(http, https, ftp)の場合、そのリモートに使用するプロキシのURL。そのリモートのプロキシを無効にするには空文字列に設定します。
- remote.<name>.proxyAuthMethod
-
curlを必要とするリモート(http、https、ftp)の場合、使用中のプロキシ(おそらく
remote.
<name>.proxy
で設定)に対して認証に使用する方法。http.proxyAuthMethod
を参照してください。 - remote.<name>.fetch
-
git-fetch[1]のデフォルトの「refspec」セット。git-fetch[1]を参照してください。
- remote.<name>.push
-
git-push[1]のデフォルトの「refspec」セット。git-push[1]を参照してください。
- remote.<name>.mirror
-
trueの場合、このリモートへのプッシュは、コマンドラインで
--mirror
オプションが指定されたかのように自動的に動作します。 - remote.<name>.skipDefaultUpdate
-
remote.
<name>.skipFetchAll
の非推奨の同義語(両方が異なる値で設定ファイルに設定されている場合、最後に現れた値が使用されます)。 - remote.<name>.skipFetchAll
-
trueの場合、このリモートはgit-fetch[1]、git-remote[1]の
update
サブコマンドを使用して更新する際にスキップされ、git
maintenance
のプリフェッチタスクによって無視されます。 - remote.<name>.receivepack
-
プッシュ時にリモート側で実行するデフォルトのプログラム。git-push[1]の--receive-packオプションを参照してください。
- remote.<name>.uploadpack
-
フェッチ時にリモート側で実行するデフォルトのプログラム。git-fetch-pack[1]の--upload-packオプションを参照してください。
- remote.<name>.tagOpt
-
この値を--no-tagsに設定すると、リモート<name>からフェッチする際にタグの自動追跡が無効になります。--tagsに設定すると、リモート<name>からすべてのタグがフェッチされます。たとえそれがリモートブランチのヘッドから到達できない場合でもです。これらのフラグをgit-fetch[1]に直接渡すと、この設定を上書きできます。git-fetch[1]の--tagsおよび--no-tagsオプションを参照してください。
- remote.<name>.vcs
-
これを値<vcs>に設定すると、Gitはgit-remote-<vcs>ヘルパーを使用してリモートとやり取りします。
- remote.<name>.prune
-
true に設定すると、このリモートからのフェッチは、デフォルトでリモートに存在しなくなったリモートトラッキング参照も削除します(コマンドラインで
--prune
オプションが指定されたかのように)。fetch.prune
設定が存在する場合は、それを上書きします。 - remote.<name>.pruneTags
-
trueに設定すると、このリモートからのフェッチは、
remote.
<name>.prune
、fetch.prune
、または--prune
によって一般的にプルーニングが有効になっている場合、リモートに存在しなくなったローカルタグもデフォルトで削除します。fetch.pruneTags
設定が存在する場合は上書きします。remote.
<name>.prune
およびgit-fetch[1]のPRUNINGセクションも参照してください。 - remote.<name>.promisor
-
trueに設定すると、このリモートはプロミサーオブジェクトをフェッチするために使用されます。
- remote.<name>.partialclonefilter
-
このプロミサーリモートからフェッチする際に適用されるフィルター。この値を変更またはクリアしても、新しいコミットのフェッチにのみ影響します。ローカルオブジェクトデータベースに既に存在するコミットに関連付けられたオブジェクトをフェッチするには、git-fetch[1]の
--refetch
オプションを使用してください。 - remote.<name>.serverOption
-
このリモートからフェッチする際に使用されるサーバーオプションのデフォルトセット。これらのサーバーオプションは、
--server-option=
コマンドライン引数で上書きできます。これは多値変数であり、優先度の高い設定ファイル(例:リポジトリ内の
.git/config
)で空の値を使用すると、優先度の低い設定ファイル(例:$HOME/.gitconfig
)から継承された値をクリアできます。 - remote.<name>.followRemoteHEAD
-
git-fetch[1]が、リモートの構成されたrefspecを使用してフェッチする際に、
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です。git-repack[1]の
-n
オプションでtrueに設定されている場合でも上書きできます。 - repack.cruftWindow
- repack.cruftWindowMemory
- repack.cruftDepth
- repack.cruftThreads
-
クラフトパックを生成する際にgit-pack-objects[1]が使用するパラメータで、それぞれのパラメータがコマンドラインで指定されていない場合に使用されます。デフォルト値と意味については、同名の
pack.*
設定変数を参照してください。 - rerere.autoUpdate
-
true に設定すると、
git-rerere
は、以前に記録された解決策を使用して競合をきれいに解決した後、結果の内容でインデックスを更新します。デフォルトは false です。 - rerere.enabled
-
解決済みコンフリクトの記録を有効にする。これにより、同じコンフリクトチャンクが再び発生した場合に自動的に解決できるようになります。デフォルトでは、git-rerere[1] は
$GIT_DIR
の下にrr-cache
ディレクトリがある場合、つまり以前にリポジトリで「rerere」が使用されたことがある場合に有効になります。 - 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
-
構成 ID。指定すると、sendemail.<identity>サブセクションの値がsendemailセクションの値よりも優先されます。デフォルトの ID は
sendemail.identity
の値です。 - sendemail.smtpEncryption
-
説明はgit-send-email[1]を参照してください。この設定はidentityメカニズムの対象外であることに注意してください。
- sendemail.smtpSSLCertPath
-
CA証明書へのパス(ディレクトリまたは単一ファイル)。証明書検証を無効にするには空の文字列に設定します。
- sendemail.<identity>.*
-
以下に見られるsendemail.*パラメータのID固有のバージョンで、コマンドラインまたは
sendemail.identity
のいずれかを通じてこのIDが選択された場合にそれらよりも優先されます。 - sendemail.multiEdit
-
true(デフォルト)の場合、編集する必要のあるファイル(
--annotate
使用時のパッチ、--compose
使用時のサマリー)を編集するために、1つのエディタインスタンスが起動されます。falseの場合、ファイルは新しいエディタが毎回起動され、1つずつ編集されます。 - 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 port] [-4] [-6] [-o option] [username@]host command -
simple
- [username@]host command -
plink
またはputty
- [-P port] [-4] [-6] [username@]host command -
tortoiseplink
- [-P port] [-4] [-6] -batch [username@]host command
simple
バリアントを除いて、Gitが新しい機能を得るにつれてコマンドラインパラメータは変更される可能性があります。 -
- stash.showIncludeUntracked
-
true に設定すると、
git
stash
show
コマンドはスタッシュエントリの未追跡ファイルを表示します。デフォルトは 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
-
trueに設定すると、git-status[1]の非磁器ステータス形式で、デフォルトで
--ahead-behind
が有効になり、falseに設定すると--no-ahead-behind
が有効になります。デフォルトは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
が設定されているサブモジュールのみ、すべてのサブモジュールのサマリー出力コマンドが抑制されることに注意してください。このルールの唯一の例外は、statusとcommitがステージングされたサブモジュールの変更を表示することです。無視されたサブモジュールのサマリーも表示するには、--ignore-submodules=dirtyコマンドラインオプションを使用するか、同様の出力を表示するがこれらの設定を尊重しないgit submodule summaryコマンドを使用できます。 - submodule.<name>.url
-
サブモジュールのURL。この変数は.gitmodulesファイルからgit submodule initによってgit configにコピーされます。ユーザーはgit submodule updateによってサブモジュールを取得する前に設定されたURLを変更できます。submodule.<name>.activeもsubmodule.activeも設定されていない場合、この変数の存在は、そのサブモジュールがgitコマンドに関心があるかどうかを示すフォールバックとして使用されます。詳細についてはgit-submodule[1]とgitmodules[5]を参照してください。
- submodule.<name>.update
-
サブモジュールがgit submodule updateによって更新される方法であり、影響を受けるコマンドはこれのみです。git checkout --recurse-submodulesなどの他のコマンドは影響を受けません。これは歴史的な理由で存在します。以前はgit submoduleがサブモジュールと対話する唯一のコマンドだったためです。
submodule.active
やpull.rebase
などの設定はより具体的です。これはgit
submodule
init
によってgitmodules[5]ファイルから設定されます。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"に設定すると、変更済みとは見なされません(ただし、ステージングされている場合はstatusとcommitの出力に表示されます)。"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
] - 既に開いているファイルディスクリプタに書き込みます。 -
<absolute-pathname> - ファイルに追記モードで書き込みます。ターゲットが既に存在し、ディレクトリである場合、トレースは指定されたディレクトリの下のファイル(プロセスごとに1つ)に書き込まれます。
-
af_unix:
[<socket-type>:
]<absolute-pathname> - Unixドメインソケットに書き込みます(サポートされているプラットフォームの場合)。ソケットタイプはstream
またはdgram
のいずれかです。省略された場合、Gitは両方を試します。
-
- trace2.normalBrief
-
ブール値。trueの場合、
time
、filename
、line
フィールドは通常の出力から省略されます。GIT_TRACE2_BRIEF
環境変数によって上書きされる場合があります。デフォルトはfalseです。 - trace2.perfBrief
-
ブール値。trueの場合、
time
、filename
、line
フィールドはPERF出力から省略されます。GIT_TRACE2_PERF_BRIEF
環境変数によって上書きされる場合があります。デフォルトはfalseです。 - trace2.eventBrief
-
ブール値。trueの場合、
time
、filename
、line
フィールドはイベント出力から省略されます。GIT_TRACE2_EVENT_BRIEF
環境変数によって上書きされる場合があります。デフォルトはfalseです。 - trace2.eventNesting
-
整数値。イベント出力におけるネストされた領域の望ましい深さを指定します。この値よりも深い領域は省略されます。
GIT_TRACE2_EVENT_NESTING
環境変数によって上書きされる場合があります。デフォルトは2です。 - trace2.configParams
-
trace2出力に記録すべき「重要な」設定のパターンのカンマ区切りリスト。例えば、
core.*,remote.*.url
は、trace2出力に設定されている各リモートをリストするイベントを含めるようになります。GIT_TRACE2_CONFIG_PARAMS
環境変数によって上書きされる場合があります。デフォルトでは未設定です。 - trace2.envVars
-
trace2出力に記録すべき「重要な」環境変数のカンマ区切りリスト。例えば、
GIT_HTTP_USER_AGENT,GIT_CONFIG
は、trace2出力にHTTPユーザーエージェントとGit設定ファイルの場所(設定されている場合)のオーバーライドをリストするイベントを含めるようになります。GIT_TRACE2_ENV_VARS
環境変数によって上書きされる場合があります。デフォルトでは未設定です。 - trace2.destinationDebug
-
ブール値。trueの場合、トレースターゲットの宛先を書き込み用に開けないときにGitはエラーメッセージを出力します。デフォルトでは、これらのエラーは抑制され、トレースは黙って無効になります。
GIT_TRACE2_DST_DEBUG
環境変数によって上書きされる場合があります。 - trace2.maxFiles
-
整数。トレースファイルをターゲットディレクトリに書き込む際、このファイル数を超過する場合は追加のトレースを書き込まない。代わりに、このディレクトリへのさらなるトレースをブロックするセンチネルファイルを書き込む。デフォルトは0で、このチェックを無効にする。
- 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
: 平文の認証情報を含むURLを解析するとき、Gitは警告メッセージをstderr
に書き込みます。 -
die
: 平文の認証情報を含むURLを解析するとき、Gitは失敗メッセージをstderr
に書き込みます。
-
- transfer.fsckObjects
-
fetch.fsckObjects
またはreceive.fsckObjects
が設定されていない場合、代わりにこの変数の値が使用されます。デフォルトはfalseです。設定されている場合、不正な形式のオブジェクトまたは存在しないオブジェクトへのリンクがある場合、フェッチまたは受信は中止されます。さらに、レガシーな問題(
fsck.
<msg-id>を参照)や、.GIT
ディレクトリの存在、悪意のある.gitmodules
ファイル(詳細はv2.2.1およびv2.17.1のリリースノートを参照)などの潜在的なセキュリティ上の問題を含む、さまざまな問題がチェックされます。その他の健全性およびセキュリティチェックは、将来のリリースで追加される可能性があります。受信側では、fsckObjectsの失敗により、それらのオブジェクトは到達不能になります。git-receive-pack[1]の「QUARANTINE ENVIRONMENT」を参照してください。フェッチ側では、不正な形式のオブジェクトは代わりにリポジトリに参照されずに残されます。
fetch.fsckObjects
の実装は隔離されない性質上、receive.fsckObjects
のようにオブジェクトストアをクリーンに保つことを信頼することはできません。オブジェクトは解凍されるとオブジェクトストアに書き込まれるため、たとえ「フェッチ」が失敗したとしても、悪意のあるオブジェクトが導入される場合があります。その後、「フェッチ」が成功するのは、新しい受信オブジェクトのみがチェックされ、すでにオブジェクトストアに書き込まれているオブジェクトはチェックされないためです。この動作の違いに依存すべきではありません。将来的には、このようなオブジェクトは「フェッチ」についても隔離される可能性があります。
今のところ、心配性な人は「プッシュ」と同じ保護が必要な場合、何らかの方法で隔離環境をエミュレートする必要があります。例えば、内部ミラーの場合、2つのステップでミラーリングを行います。1つは信頼できないオブジェクトをフェッチし、次に2回目の「プッシュ」(隔離を使用します)を別の内部リポジトリに行い、内部クライアントはこのプッシュされたリポジトリを利用するか、内部フェッチを差し止め、完全な「fsck」が実行された後(そしてその間に新しいフェッチが発生していない場合)にのみ許可します。
- transfer.hideRefs
-
receive-pack
とupload-pack
が最初の広告から除外する参照を決定するために使用する文字列。複数のプレフィックス文字列を指定するには、複数の定義を使用します。この変数の値にリストされている階層下にある参照は除外され、git
push
またはgit
fetch
に応答するときに非表示になります。この設定のプログラム固有のバージョンについては、receive.hideRefs
とuploadpack.hideRefs
を参照してください。エントリを否定するためにref名の前に
!
を含めることもできます。これは、以前のエントリが非表示としてマークしたものでも、明示的に公開します。複数のhideRefs値がある場合、後のエントリが以前のエントリを上書きします(より具体的な設定ファイルのエントリは、より具体的なでないエントリを上書きします)。名前空間が使用されている場合、各参照は
transfer.hiderefs
パターンと照合される前に名前空間プレフィックスが削除されます。削除前に参照と照合するには、参照名の前に^
を追加します。!
と^
を組み合わせる場合、!
を最初に指定する必要があります。例えば、
refs/heads/master
がtransfer.hideRefs
に指定されており、現在の名前空間がfoo
である場合、refs/namespaces/foo/refs/heads/master
はアドバタイズから除外されます。uploadpack.allowRefInWant
が設定されている場合、upload-pack
はプロトコルv2fetch
コマンドでwant-ref
refs/heads/master
をrefs/namespaces/foo/refs/heads/master
が存在しなかったかのように扱います。receive-pack
は、その名前(いわゆる「.have」行)に言及せずに、参照が指すオブジェクトIDを引き続きアドバタイズします。参照を非表示にしても、クライアントはgitnamespaces[7]マニュアルページの「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
-
--filter=tree:
<n>は、<n>がuploadpackfilter.tree.maxDepth
の値を超えない場合にのみ許可されます。設定されている場合、この設定変数が既に設定されていない限り、uploadpackfilter.tree.allow=true
も意味します。未設定の場合、効果はありません。 - uploadpack.allowRefInWant
-
このオプションが設定されている場合、
upload-pack
はプロトコルバージョン2のfetch
コマンドのref-in-want
機能をサポートします。この機能は、レプリケーションの遅延により、参照が指すOIDについて同じビューを持っていない可能性があるロードバランスされたサーバーの利益のために意図されています。 - url.<base>.insteadOf
-
この値で始まるすべてのURLは、代わりに<base>で始まるように書き換えられます。一部のサイトが多数のリポジトリを提供し、複数のアクセス方法でそれらを提供し、一部のユーザーが異なるアクセス方法を使用する必要がある場合、この機能により、ユーザーは同等のURLのいずれかを指定でき、Gitはサイト上のこれまで見たことのないリポジトリであっても、特定のユーザーにとって最適な代替URLに自動的にURLを書き換えます。複数のinsteadOf文字列が特定のURLと一致する場合、最も長い一致が使用されます。
プロトコルの制限は書き換えられたURLに適用されることに注意してください。書き換えによってURLがカスタムプロトコルまたはリモートヘルパーを使用するように変更された場合、リクエストを許可するように
protocol.*.allow
設定を調整する必要がある場合があります。特に、サブモジュールに使用することを期待するプロトコルは、デフォルトのuser
ではなくalways
に設定する必要があります。上記のprotocol.allow
の説明を参照してください。 - url.<base>.pushInsteadOf
-
この値で始まるすべてのURLはプッシュされません。代わりに、<base>で始まるように書き換えられ、結果のURLにプッシュされます。一部のサイトが多数のリポジトリを提供し、複数のアクセス方法でそれらを提供し、その一部がプッシュを許可しない場合、この機能により、ユーザーはプル専用URLを指定でき、Gitはサイト上のこれまで見たことのないリポジトリであっても、プッシュに適したURLを自動的に使用します。複数のpushInsteadOf文字列が特定のURLと一致する場合、最も長い一致が使用されます。リモートに明示的なpushurlがある場合、Gitはそのリモートに対してこの設定を無視します。
- user.name
- user.email
- author.name
- author.email
- committer.name
- committer.email
-
user.name
およびuser.email
変数は、コミットオブジェクトのauthor
およびcommitter
フィールドに何が最終的に格納されるかを決定します。author
またはcommitter
が異なる必要がある場合、author.name
、author.email
、committer.name
、またはcommitter.email
変数を設定できます。これらすべては、GIT_AUTHOR_NAME
、GIT_AUTHOR_EMAIL
、GIT_COMMITTER_NAME
、GIT_COMMITTER_EMAIL
、およびEMAIL
環境変数によって上書きできます。これらの変数の
name
形式は、慣習的に個人名のある形式を指すことに注意してください。これらの設定の詳細についてはgit-commit[1]とgit[1]の環境変数セクションを、認証情報を探している場合はcredential.username
オプションを参照してください。 - user.useConfigOnly
-
Gitに、
user.email
およびuser.name
のデフォルト値を推測するのを避け、代わりに設定からのみ値を取得するように指示します。例えば、複数のメールアドレスがあり、リポジトリごとに異なるアドレスを使用したい場合、この設定オプションをグローバル設定で名前とともにtrue
に設定すると、Gitは新しくクローンされたリポジトリで新しいコミットを作成する前にメールアドレスを設定するように促します。デフォルトはfalse
です。 - user.signingKey
-
git-tag[1]またはgit-commit[1]が署名付きタグまたはコミットを作成する際に、目的のキーを自動的に選択しない場合、この変数でデフォルトの選択を上書きできます。このオプションはGPGの--local-userパラメータにそのまま渡されるため、GPGがサポートする任意の方法でキーを指定できます。gpg.formatが
ssh
に設定されている場合、これはプライベートSSHキーまたはssh-agentが使用される場合の公開キーへのパスを含めることができます。あるいは、key::
で始まる公開キーを直接含めることもできます(例:「key::ssh-rsa XXXXXX identifier」)。秘密キーはssh-agent経由で利用可能である必要があります。設定されていない場合、Gitはgpg.ssh.defaultKeyCommand(例:「ssh-add -L」)を呼び出し、利用可能な最初のキーを使用しようとします。後方互換性のために、「ssh-rsa XXXXXX identifier」のような「ssh-」で始まる生のキーは「key::ssh-rsa XXXXXX identifier」として扱われますが、この形式は非推奨です。key::
形式を使用してください。 - versionsort.prereleaseSuffix (非推奨)
-
versionsort.suffix
の非推奨のエイリアスです。versionsort.suffix
が設定されている場合、無視されます。 - versionsort.suffix
-
git-tag[1]でバージョンソートが使用されている場合でも、同じ基本バージョンだが異なるサフィックスを持つタグ名は辞書順でソートされるため、例えばプレリリースタグがメインリリース後に表示されます(例:「1.0」の後に「1.0-rc1」)。この変数は、異なるサフィックスを持つタグ名のソート順を決定するために指定できます。
この変数で単一のサフィックスを指定すると、そのサフィックスを含むタグ名はすべて、対応するメインリリースの前に表示されます。例えば、変数が"-rc"に設定されている場合、すべての"1.0-rcX"タグは"1.0"の前に表示されます。複数回、サフィックスごとに1回指定すると、設定におけるサフィックスの順序が、それらのサフィックスを持つタグ名のソート順を決定します。例えば、設定で"-pre"が"-rc"の前に表示される場合、すべての"1.0-preX"タグはすべての"1.0-rcX"タグの前にリストされます。メインリリースタグとさまざまなサフィックスを持つタグの相対的な配置は、他のサフィックスの中に空のサフィックスを指定することで決定できます。例えば、サフィックス"-rc"、""、"-ck"、"-bfs"がこの順序で設定に表示される場合、すべての"v4.8-rcX"タグが最初にリストされ、次に"v4.8"、次に"v4.8-ckX"、最後に"v4.8-bfsX"が続きます。
複数のサフィックスが同じタグ名に一致する場合、そのタグ名は、タグ名の最も早い位置で始まるサフィックスに従ってソートされます。複数の異なる一致するサフィックスがその最も早い位置で始まる場合、そのタグ名はそれらのサフィックスのうち最も長いものに従ってソートされます。複数の設定ファイルに異なるサフィックスがある場合のソート順は定義されていません。
- web.browser
-
いくつかのコマンドで使用されるWebブラウザを指定します。現在、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]スイートの一部