我是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 - 但我不认为从系统文件夹重定向到用户文件夹是个好主意,特别是如果其他用户遇到同样的问题。其他类似的答案似乎做了一个符号链接或类似的解决方案。但我没有找到涉及系统配置文件的那个。
我还考虑过将快捷方式属性“开始于:”从%HOME%更改为%USERPROFILE%,但〜似乎仍然解析为%HOME%
这种行为是正常的吗?使“〜”或%HOME%解析到我的用户目录的正确方法是什么?
答案 0 :(得分:3)
只需更改%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命令不会增加任何价值,只会产生混淆。
答案 1 :(得分:0)
我来到这里是为了寻找一个原因,为什么在同一台 Windows 机器上,一个用户可以从 PowerShell 命令行使用 git config --list --global
,而另一个用户却不能。
基本上在PowerShell中设置了一个指向正确位置的变量$HOME
;但是,这不是 git
正在寻找的变量,它希望设置 $env:HOME
。
为了解决这个问题,我们对无法列出全局设置的用户运行了以下 PowerShell 命令:
[System.Environment]::SetEnvironmentVariable('HOME',$env:USERPROFILE,'User')