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