Наша организация сопоставляет домашние папки с сетевым ресурсом через Active Directory для каждого пользователя. Это вызывает проблемы с Git, поскольку Git ожидает найти глобальный файл конфигурации пользователя в домашней папке пользователя, которая для меня является сопоставленным диском из-за этой настройки. git config --global --list
throws fatal: unable to read config file 'H://.gitconfig': No such file or directory
.
При устранении неполадок я обнаружил, что автоматическая переменная $HOME
в PowerShell установлена на , C:\Users\username
но $Env:HOME
установлена на сопоставленный диск.
Почему автоматическая переменная PowerShell отличается? Я предполагаю, что Active Directory устанавливает $Env:HOME
переменную на сопоставленный диск; это правильно? Если так, не следует ли $HOME
использовать тот же путь?
решение1
TLDR; $HOME
предпочтителен для кроссплатформенной совместимости
Согласно сообщению SOполучение домашнего каталога:
Самый надежный способ сослаться на домашний каталог текущего пользователя — использоватьавтоматическая переменная
$HOME
.Если вы попытались использоватьпеременная окружения
$env:HOME
, различия в платформах будут проявляться на Windows и Unix