git 将系统配置文件视为主目录而不是用户主文件夹(Windows 7)
Posted
技术标签:
【中文标题】git 将系统配置文件视为主目录而不是用户主文件夹(Windows 7)【英文标题】:git sees the system profile as home instead of the user home folder (Windows 7) 【发布时间】:2012-08-03 16:49:00 【问题描述】:我是 git 新手,正在关注 this bitbucket tutorial 进行初始设置。在 git bash 窗口中,它显示我为 brnt@brntslaptop,但如果我输入:
$ ls -a ~/.ssh
ls: /c/windows/system32/config/systemprofile/.ssh: No such file or directory.
我认为这与我是管理员或禁用 UAC 有关,但我不确定最好的方法。
This answer is similar- 但我认为从系统文件夹重定向到用户文件夹不是一个好主意,特别是如果另一个用户有同样的问题。其他类似的答案似乎为解决方案做一个符号链接或类似的。但我还没有找到涉及系统配置文件的。
我也考虑过将快捷方式属性“Start In:”从 %HOME% 更改为 %USERPROFILE%,但 ~ 似乎仍然解析为 %HOME%
这种行为正常吗?使“~”或 %HOME% 解析到我的用户目录的正确方法是什么?
【问题讨论】:
【参考方案1】:只需更改 %HOME%(或者实际上是 $HOME,因为 %HOME% 很可能根本没有设置)。
默认情况下,<git-install-dir>\etc\profile
将 $HOME 设置为 %HOMEDRIVE%%HOMEPATH%(如果它们已设置并指向现有目录),否则设置为 %USERPROFILE%。
因此,您可以编辑该文件,找到该行
HOME="$HOMEDRIVE$HOMEPATH"
并删除它或在其前面添加 #
以强制使用 %USERPROFILE%。
或者在此块之后的任意位置添加一行,将 HOME 显式设置为您想要的。
编辑:
在较新版本的 git 中,该行可能不再存在。
我在etc\profile
的最顶部添加了以下内容(它非常具体且丑陋,但它有效):
#homefix start
HOME=/c/Users/myusername/
HISTFILE=$HOME/.bash_history
export LANG=en_US
# normalize HOME to unix path
export HOME="$(cd "$HOME" ; pwd)"
#homefix end
export LANG...
行可以忽略。我有它可以在 git gui 和 gitk 的菜单和按钮中获取英文文本,因为 IMO 翻译 git 命令不会增加任何价值,只会造成混乱。
【讨论】:
遇到了类似的问题,我无法再在配置文件中找到该行 - 要么是我的安装损坏了,要么它可能已经移动。 感谢@RickMoritz 指出这一点。我已经更新了我的答案。 我安装了 Windows creators 更新并且 %HOME% 停止正确解析。我通过为我的用户显式设置 HOME=%USERPROFILE% 来修复它。【参考方案2】:我来到这里寻找一个原因,为什么在同一台 Windows 机器上,一个用户可以从 PowerShell 命令行使用 git config --list --global
,而另一个用户却不能。
基本上在PowerShell中设置了一个变量$HOME
指向正确的位置;但是,这不是 git
正在寻找的变量,它希望设置 $env:HOME
。
为了解决这个问题,我们在无法列出其全局设置的用户上运行了以下 PowerShell 命令:
[System.Environment]::SetEnvironmentVariable('HOME',$env:USERPROFILE,'User')
【讨论】:
以上是关于git 将系统配置文件视为主目录而不是用户主文件夹(Windows 7)的主要内容,如果未能解决你的问题,请参考以下文章