Closed3
gitconfigの[include]について調べたのでまとめ
gitconfigにおけるincludeとは
dotfilesを作成する中でいろんなリポジトリをみていたところ.gitconfigファイル内にincludeという文言があり、他のファイルパスを指定している事例が見られた。
[include]
path = ~/.gitconfig.local
これはpathの後ろに続けられたファイルを読み込むための記述とのこと。
上の例だとユーザーのホームディレクトリ(~/)に配置されている.gitconfig.localを読み込むという意味となる。
使用例を考える
個々の環境でのユーザー情報参照
例えば、dotfilesでGitのグローバル設定も合わせてリポジトリで管理したいとき。.gitconfigではデフォルトだとuser.name
、user.email
のようなユーザー情報を含む。
ユーザー情報を.gitconfigへ記述し、dotfilesに含むことになる。しかし環境によってはそれぞれのユーザー情報を柔軟に反映したい場合があるため、環境に応じて変化する部分を意図的に別のファイルとしてローカルで参照できるようする。
下の例ではユーザー情報を切り出して別のファイルから読み込むようにする。以下のような隠しファイルをホームディレクトリに作成。
.gitconfig.local
[user]
name = git user
email = git@example.com
冒頭で記述したinclude節で.gitconfigから読み込む。
[include]
path = ~/.gitconfig.local
.gitconfigファイルにはgitの設定を保存し、.gitconfig.localなどとした別ファイルにユーザー情報を含めることでそれぞれの環境で.gitconfig.localの内容が読み込まれる。includeの下へ記述したファイルが断片的にマージされて読み込まれるイメージ。
機密情報を隠蔽する
限定的なユースケースかもしれないが、.gitconfigをGithubにて公開している場合に、環境依存する部分や他人に見られるとまずい内容をあえてincludeでローカル参照し.gitconfigから除外できる。
参考ドキュメント
このスクラップは2022/01/19にクローズされました