Git config の項目の値の取得、項目の消去、項目を設定できる3つの場所

無料ソースコード管理 (SCM: software configuration management) ソフト Git で、Git の動作を指定する config の設定項目の値を取り消すコマンドを紹介します。
設定項目が優先度の異なる3つの場所に設定されていることについてと、各場所の設定項目のの取得、現在のリポジトリで採用されている値の取得を行うコマンドについても紹介します。

git-scm 公式サイトの一部 20250408

※Git-2.49.0 (64 bit) を使用します。

Git の config 情報は3つの場所に設定可能

Git の config の各項目の設定は system, global, local の3つの場所に配置できます。

Gitには、git config と呼ばれるツールが付属します。これで、どのようにGitが見えて機能するかの全ての面を制御できる設定変数を取得し、設定することができます。 これらの変数は三つの異なる場所に格納されうります:

  1. /etc/gitconfig ファイル: システム上の全てのユーザーと全てのリポジトリに対する設定値を保持します。 もし --system オプションを git config に指定すると、明確にこのファイルに読み書きを行ないます。
  2. ~/.gitconfig か ~/.config/git/config ファイル: 特定のユーザーに対する設定値を保持します。 --global オプションを指定することで、Gitに、明確にこのファイルに読み書きを行なわせることができます。
  3. 現在使っているリポジトリのGitディレクトリにある config ファイル( .git/config のことです): 特定の単一リポジトリに対する設定値を保持します。
Git – 最初のGitの構成

system は、 global, local に設定されていない全てのリポジトリの設定として参照されます。
local は、最優先で参照されますが、config の設定の影響範囲はそのリポジトリに限られます。

設定の場所参照される優先度影響範囲
system☆☆☆
global☆☆☆☆
local☆☆☆

現在の config の設定の確認

Git の config の各項目の値を確認するには git config get コマンドを使います。
※ –system ,–global, –local のいずれかのオプションを指定することで、各場所の値を取得できます。

git config get 項目名

get

Emits the value of the specified key. If key is present multiple times in the configuration, emits the last value. If --all is specified, emits all values associated with key. Returns error code 1 if key is not present.

指定されたキーの値を出力します。キーが構成内に複数回存在する場合、最後の値を出力します。 –all が指定されている場合は、キーに関連付けられたすべての値を出力します。キーが存在しない場合は、エラー コード 1 を返します。

Git – git-config Documentation と Google 翻訳

以下では、最初に system, global, local の各場所の core.autocrlf 項目の値を取得しています。

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --system core.autocrlf
true

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --global core.autocrlf

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --local core.autocrlf
false
  • system では true
  • global では未設定
  • local では false

を設定しています。

そのあとに、項目の設定場所を指定しないで値を取得することで、現在のリポジトリで採用されている値を取得できます。

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get core.autocrlf
false

例では、一番優先される local に false が設定されていたので、 false が表示されました。

Git の config の設定を消去

今回は、 local に設定されている core.autocrlf 項目自体を消去して、さらに上位の global, system の設定に合わせます。

git config unset 項目名

git config set で設定した local (現在のリポジトリでのみ有効) の項目と値を除去して、さらに上位( system > global > local) の同じ項目の設定に合わせるには、unset を用います。

unset

Unset value for one or more config options. By default, this command refuses to unset multi-valued keys. Passing --all will unset all multi-valued config options, whereas --value will unset all config options whose values match the given pattern.

1 つ以上の構成オプションの値の設定を解除します。デフォルトでは、このコマンドは複数値キーの設定解除を拒否します。 –all を渡すと、すべての複数値の構成オプションの設定が解除され、–value を渡すと、指定されたパターンに値が一致するすべての構成オプションの設定が解除されます。

Git – git-config Documentation と Google 翻訳

local の core.autocrlf 項目unset で消去しました。

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config unset --local core.autocrlf

その後、get で各場所の設定を確認すると、さきほど local に設定されていた core.autocrlf 項目(値は false )は消えて、何も表示されない未設定の状態が確認できます。

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --system core.autocrlf
true

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --global core.autocrlf

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get --local core.autocrlf

場所を指定しない get で現在採用されている値を確認すると、local の項目 (値は false) は消えて、 global の項目は最初から未設定なので、 system の値 true が採用され false から true に変わりました。

G:\Dev\StudyTortoiseGit\RepoAutoCRLF6>git config get core.autocrlf
true

以下は、今回行った git コマンドの全体の流れです。

Git config unset により設定した項目を消去1

今回使用したリポジトリと core.autocrlf 項目について

今回使用したリポジトリと、core.autocrlf 項目については以下の記事も参照してください。

まとめ

今回は、無料ソースコード管理 (SCM: software configuration management) ソフト Git で、Git の動作を指定する config の設定項目の値を取り消すコマンドを紹介しました。
設定項目が優先度の異なる3つの場所に設定されていることについてと、各場所の設定項目のの取得、現在のリポジトリで採用されている値の取得を行うコマンドについても紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました