git for windows - 启动时不加载%USERPROFILE%\。gitconfig"运行为"

时间:2017-05-17 08:29:15

标签: windows git

当我运行命令mod_rewrite时,它显示位于主目录中的.gitconfig条目。如果我使用 runas 启动命令提示符,则同一命令不会显示%USERPROFILE%.gitconfig中的条目。我确认该文件存在。 我的目标是将git作为不同的用户运行。除了用户名/电子邮件不是从.gitconfig获取之外,所有命令都能正常工作,但是使用了默认值。当我运行.htaccess时,vi会在我的主目录中显示.gitconfig的路径。当我从使用 runas 启动的命令提示符运行相同的命令时,vi显示路径git config --list --show-origin

当命令提示符启动runas时,如何强制git从主文件夹加载.gitconfig?

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。在Windows,用户的主目录由环境变量USERPROFILE定义。 git忽略它并读取env变量HOME的值。如果未设置,它将HOMEDRIVE和HOMEPATH组合在一起构建HOME变量。运行 runas 时,HOMEPATH设置为 Windows \ system32 。 git应该使用USERPROFILE。如果我设置HOME变量

  

设置HOME =%USERPROFILE%

git从正确的文件中读取配置。

答案 1 :(得分:0)

这里还有一个错误,我建议使用

CMD

CD /D %SYSTEMDRIVE%\
@REM  Or just use "CD .."

SET HOME=%USERPROFILE%

即当您使用“以其他用户身份运行”启动 CMD 时,必须移出Windows登录用户的主目录。

但只要 bash 即可使用

HOME=$USERPROFILE

因为 bash 有另一个默认的启动文件夹。

错误说明

假设您以 ITretyakov 帐户登录Windows。
您的用户个人资料目录为 C:/ Users / ITretyakov
您有一个名为 some_automoation 的服务帐户。
然后,通过为 some_automoation 帐户使用“以其他用户身份运行”来打开 CMD 控制台。
但是重要的是,您的启动目录将为 C:/ Users / ITretyakov
而且 some_automoation 帐户对此目录没有任何访问权限。

运行

git config --global --list

您将收到以下错误

fatal: failed to stat 'C:/Users/ITretyakov': Permission denied

Git想要读取当前工作目录并失败。
现在,将工作目录设置到系统驱动器(C :)或任何其他位置。

CD /D %SYSTEMDRIVE%\
git config --global --list

您将收到另一个预期的错误

fatal: unable to read config file 'C:/Windows/system32/.gitconfig': No such file or directory

最后我们使用zdenko.s

的修复程序
SET HOME=%USERPROFILE%

现在,您可以访问位于
some_automoation 帐户的.gitconfig了。 C:/用户/ some_automoation

条件:
git版本2.21.0.windows.1;
Windows 10