Closed3

gitconfigの[include]について調べたのでまとめ

あーるあーる

gitconfigにおけるincludeとは

dotfilesを作成する中でいろんなリポジトリをみていたところ.gitconfigファイル内にincludeという文言があり、他のファイルパスを指定している事例が見られた。

[include]
path = ~/.gitconfig.local

これはpathの後ろに続けられたファイルを読み込むための記述とのこと。

上の例だとユーザーのホームディレクトリ(~/)に配置されている.gitconfig.localを読み込むという意味となる。

あーるあーる

使用例を考える

個々の環境でのユーザー情報参照

例えば、dotfilesでGitのグローバル設定も合わせてリポジトリで管理したいとき。.gitconfigではデフォルトだとuser.nameuser.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にクローズされました