環境と前提条件
【動作環境】
- OS: Windows 10
- Git: git version 2.30.1.windows.1
- コマンドLineツール: GitBash mintty 3.4.4
【前提条件】
- Gitが既にシステムにインストール済
- Gitのインストール先: C:\Program Files\Git\
- Windowsのユーザフォルダ: C:\Users\hayashi.hirohumi\
- ローカル作業フォルダ: C:\gittest-repo\
概要
【最初のGitの構成】
Gitがシステムにインストールした直後、まずはgit configで初期設定を行う。該当作業はしなくても使えるかもしれないが、Gitをもっと上手に使いこなすため、ちょっとカスタマイズしたほうがよいでしょう。該当作業は一度だけ行えばずっと有効である。すなわち、面倒な作業はただ1回だけ行えば、その後のGit人生は楽になる。更に、Gitをアップグレードしても設定は引き継がれるので、再設定は不要である。
Gitの設定を表示・変更する
【書式1】Gitの設定一覧を表示します。
$ git config [--system|--global|--local|-f <config_file> ] [--show-origin] -l
【Optionの詳細】
- 最初のオプション[--system | --global | --local | -f ]は、システム(OS)、ユーザ、あるいはリポジトリの単位で設定の有効範囲を指定します。
# ユーザ範囲の設定一覧を表示する。
# -lは--listの省略形
$ git config --global -l
# 実行結果
http.sslverify=false
user.name=hayashi.hirohumi
user.email=hayashi.hirohumi@xxxx.com
core.autocrlf=false
credential.helper=manager-core
option | 有効範囲 | デフォルト格納場所 |
---|---|---|
--system | システムを使用するすべてのユーザに有効な設定。 | C:/Program Files/Git/etc/gitconfig |
--global | OSユーザ固有の設定。 | C:/Users/hayashi.hirohumi/.gitconfig |
--local | リポジトリ固有の設定。( デフォルト)。 | .git/config ※リポジトリのフォルダ直下に隠しフォルダ.gitが存在している |
- [--show-origin]はどの設定がどのファイルで行われているのか表示する。
# 作業フォルダ「C:\gittest-repo\」の直下に、下記のコマンドを実行すると、
# すべて有効範囲の設定一覧が表示されます。
$ git config --show-origin -l
# 実行結果
file:C:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain
# ...省略(※systemの設定一覧)
file:C:/Users/hayashi.hirohumi/.gitconfig http.sslverify=false
file:C:/Users/hayashi.hirohumi/.gitconfig user.name=hayashi.hirohumi
# ...省略(※globalの設定一覧)
file:.git/config core.repositoryformatversion=0
file:.git/config submodule.active=.
# ...省略(※localの設定一覧)
【書式2】Gitの設定を追加編集します。
$ git config [--system|--global|--local|-f <config_file> ] <name> <value>
【Optionの詳細】
option | 説明 |
---|---|
< name > | 設定名を指定する。 |
< value > | 設定値を指定する。設定値がspaceを含む場合は「"」で囲んで指定する。 |
# 設定を追加する例
# ユーザemailの設定が存在してない場合、下記のコマンドで、
# カレントユーザの設定にユーザのemailを追加する。
# 既に存在する場合、更新となります。
$ git config --global user.email hayashi.hirohumi@xxxx.com
# 追加完了後、--listオプションで確認する
$ git config --global --list
# 実行結果
# ...省略
user.email=hayashi.hirohumi@xxxx.com
# ...省略
【書式3】Gitの設定を削除します。
$ git config [--system|--global|--local|-f <config_file>] [--unset|--unset-all|--remove-section] <name>[<value>]
【Optionの詳細】
option | 説明 |
---|---|
--unset | 設定値を1つだけ削除する際に使用する。 ※設定名に対して複数の設定値がある場合は、value引数と組み合わせて指定する。 |
--unset-all | 設定名に対して複数の設定値がある場合に、まとめて削除する。 |
--remove-section | セクションごと削除する。 例:userセクション user.name=hayashi.hirohumi user.email=hayashi.hirohumi@xxx.com |
# 設定を削除する例
# カレントユーザの設定にユーザのemailを削除する。
$ git config --global --unset user.email
# カレントユーザの設定にuserセクションを削除する。
$ git config --global --remove-section user
【書式4】Gitの設定をエディターで編集します。
# インストール時、設定されているデフォルトエディターで設定ファイルを開く。
$ git config [--system|--global] [-f <config_file>] -e(--edit)
使い方
有効範囲
前述にもざっくり説明したが、Gitの設定には3つの有効範囲が存在します。
同じ設定名が複数の有効範囲に存在する場合は、下記の順で最後に設定されている値が使用されます。
- --system
- OS範囲内有効となる。言い換えると、OSのすべてのユーザに有効な設定である。
- --global
- 現在ログインしているユーザ固有の設定である。
- --local
- リポジトリ固有の設定である。リポジトリ内のディレクトリで--systemおよび--globalのいずれも指定しない場合に設定される。
なお、Gitの設定はローカルのみ有効であるので、リモートリポジトリには同期されることはない。
設定名
Git configコマンドは設定名と設定値を指定することが必要である。設定名は、セクションとキーで構成されている。
それぞれを「.」で結合した文字列が設定名となる。
下記の例で説明します。
# nameとemailはキーで、両方ともuserセクションに所属している。
$ git config user.name "hayashi.hirohumi"
$ git config user.email "hayashi.hirohumi@xxx.com"
# 上記の【書式3】によるとセクション毎に削除できる
$ git config --remove-section user
終わりに
今回 git config コマンドについての概要を説明しましたが、次回の「Gitの設定編(二) git configでの高頻度設定」でよく使う設定を詳しく説明しようと思います。