私たちの組織では、各ユーザーのホーム フォルダーを Active Directory 経由でネットワーク共有にマップしています。Git はグローバル ユーザー構成ファイルをユーザーのホーム フォルダーで見つけることを想定するため、Git で問題が発生しgit config --global --list
ますfatal: unable to read config file 'H://.gitconfig': No such file or directory
。この設定により、このフォルダーはマップされたドライブになります。
$HOME
トラブルシューティング中に、 PowerShell の自動変数が に設定されているC:\Users\username
が、$Env:HOME
マップされたドライブに設定されていることがわかりました。
$Env:HOME
PowerShell の自動変数が異なるのはなぜですか? Active Directory が変数をマップされたドライブに設定していると想定していますが、これは正しいですか? そうであれば、$HOME
同じパスを使用すべきではないですか?
答え1
要約; は$HOME
クロスプラットフォームの互換性のために推奨されます
SOの投稿によるとホームディレクトリを取得する:
現在のユーザーのホームディレクトリを参照する最も堅牢な方法は、自動変数
$HOME
。もしあなたが環境変数
$env:HOME
WindowsとUnixではプラットフォームの違いが表面化する