.gitconfigで[includeIf]を指定しても反映されないとき

カテゴリ: git | タグ: , ,

gitの設置ファイルである.gitconfigでは、[includeIf]を指定することで特定の条件の時のみconfigの設定を有効にすることができます。

この記事では、[includeIf]を指定したにもかかわらず、設定が有効にならない時の確認ポイントを説明します。

サンプル

設定

  • .gitconfig
[user]
user = work
email = work@example.com

[includeIf "gitdir:~/project/private/project1"]
path = ~/.gitconfig_private
  • .gitconfig_private
[user]
user = private
email = private@example.com

期待する振る舞い

以下のように、~/project/privateの中にあるリポジトリで作業した時のみ、.gitconfig_privateの設定が有効になるようにしたい。

$ mkdir ~/project/private
$ cd ~/project/private

$ mkdir project1
$ mkdir project2

$ cd project1

$ git init

$ git config user.name
private

確認ポイント

うまくいかない時のチェックポイントを列挙します。

パスの確認

includeIfに書いた、"gitdir:~/project/private/"path = ~/.gitconfig_privateが合っているか確認します。
このパスは~/を使ったホームからの相対パスを認識しますが、念のために絶対パスにしてみて確認してみます。

gitdirの中のディレクトリが/で終わっているか

ディレクトリ指定が~/project/privateではなく~/project/private/と、スラッシュで完了していることを確認します。

git configを実行しているディレクトリはgit管理下か

[includeIf]が有効になっているのはgit管理下のディレクトリのみです。
例えば上記の期待する振る舞いの例だと~/project/private/project1git initしているので[includeIf]が有効になります。ですが、~/project/private~/project/private/project2のディレクトリでgit config user.nameを実行しても[includeIf]の内容は反映されないので注意が必要です。

ちなみに、特定のディレクトリ以下をすべて対象にしたいときは[includeIf "gitdir:~/project/private/**"]と、ワイルドカードを使うこともできます。


Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です