LoginSignup
0
0

More than 1 year has passed since last update.

Gitの設定編(一) git configの概要と使い方

Posted at

環境と前提条件

【動作環境】

  • 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つの有効範囲が存在します。
同じ設定名が複数の有効範囲に存在する場合は、下記の順で最後に設定されている値が使用されます。

  1. --system
    • OS範囲内有効となる。言い換えると、OSのすべてのユーザに有効な設定である。
  2. --global
    • 現在ログインしているユーザ固有の設定である。
  3. --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での高頻度設定」でよく使う設定を詳しく説明しようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0