Gitバージョン: 2.13.0.windows.1
OS: Windows 7
CLI: Git bash
。gitconfig
[user]
name = Gyandeep Singh
email = [email protected]
[Push]
default = current
[core]
autocrlf = input
[includeIf "gitdir: ~/Documents/webstorm/corporate/"]
path = .gitconfig-work
。gitconfig-work
[user]
name = Gyandeep Singh
email = [email protected]
発生したこと:企業フォルダー内のフォルダー(テスト例)でCLIを開き、git config user.email
を実行します。出力は[email protected]
です。
予想:結果は[email protected]
である必要があります。
私は何か間違ったことをしていますか、それとも私の期待は正しくありませんか?私はgit docsに従いました。
Git初期化ディレクトリでgit config --show-Origin --get user.email
を実行する必要があります。 gitが初期化されていない場合、includeIf gitdir
機能は動作しません。
その奇妙ですが本当です。それがまだ機能することを願っています。
グローバルC:/Users/<user-name>/.gitconfig
には、これが必要ですincludeIf
:
[includeIf "gitdir:C:/Users/<user-name>/Documents/webstorm/corporate/"]
path = .gitconfig-work
C:/Users/<user-name>/Documents/webstorm/corporate
に作業Gitリポジトリがあり、conditional
作業構成はC:/Users/<user-name>/.gitconfig-work
に配置する必要があります。
それは少なくともWindowのcmdとCmderで機能しています。 git config --show-Origin --get user.email
は、構成値がロード/解決される場所を示します。
また、conditional
作業構成は、Gitリポジトリ内から発行された場合にのみ使用されるようです。
C:\Users\<user-name>\Documents\webstorm\corporate
λ git config --show-Origin --get user.email
file:C:/Users/<user-name>/.gitconfig [email protected]
C:\Users\<user-name>\Documents\webstorm\corporate\some-repo
λ git config --show-Origin --get user.email
file:C:/Users/<user-name>/.gitconfig-work [email protected]
C:\Users\<user-name>\Documents\webstorm\corporate\some-non-repo-dir
λ git config --show-Origin --get user.email
file:C:/Users/<user-name>/.gitconfig [email protected]
受け入れられた回答は参考になりますが、質問には回答しません。
これを書いている時点では、includeIfはgit初期化フォルダー内でのみ機能します。
したがって、「〜/ Documents/webstorm/corporate/somegitproject」にcdしてコマンドを実行すると、出力は期待どおりになります。
$ cd ~/Documents/webstorm/corporate/somegitproject
$ git config user.email
[email protected]
ユーザーはこれが「〜/ Documents/webstorm/corporate /」でも同様に機能することを期待しているため、これはおそらくgitに対する欠陥です。
大文字と小文字の区別をオフにする必要があります:変更"gitdir:"
から"gitdir/i:"
[includeIf "gitdir/i:C:/Work/"]
path = .gitconfig-work
[includeIf "gitdir/i:C:/My/Dev/"]
path = .gitconfig-my
から:
https://github.com/Microsoft/vscode/issues/62921#issuecomment-43769302
ここにタイプミスがあります:
[includeIf "gitdir: ~/Documents/webstorm/corporate/"]
path = .gitconfig-work
gitdir:
の後にスペースを入れないでください:
[includeIf "gitdir:~/Documents/webstorm/corporate/"]
path = .gitconfig-work
それを削除すると、初期化されたGitリポジトリ内の動作が修正されます。
これにより、Git構成全体と、Git構成ファイルの内容が表示されます。
git config --list --show-Origin
警告:これをGitリポジトリ内で実行すると、。gitconfig-workの値が表示されますが、〜/ Documents/webstorm/corporate /内の場合は表示されません、ただしGitリポジトリの外部。