Nossa organização mapeia pastas iniciais para um compartilhamento de rede via Active Directory para cada usuário. Isso causa problemas com o Git porque o Git espera encontrar o arquivo de configuração global do usuário na pasta pessoal do usuário, que para mim é uma unidade mapeada devido a essa configuração. git config --global --list
lança fatal: unable to read config file 'H://.gitconfig': No such file or directory
.
Durante a solução de problemas, descobri que a variável automática $HOME
no PowerShell está definida como, C:\Users\username
mas $Env:HOME
está definida como a unidade mapeada.
Por que a variável automática do PowerShell é diferente? Presumo que o Active Directory esteja definindo a $Env:HOME
variável para a unidade mapeada; isso está correto? Se sim, não deveria $HOME
usar o mesmo caminho?
Responder1
TLDR; $HOME
é preferido para compatibilidade entre plataformas
De acordo com a postagem do SOobtendo diretório inicial:
A maneira mais robusta de se referir ao diretório inicial do usuário atual é usarvariável automática
$HOME
.Se você tentou usar ovariável de ambiente
$env:HOME
, diferenças de plataforma surgiriam no Windows versus Unix