git将系统配置文件视为主页而不是用户主文件夹(Windows 7)

brn*_*rnt 6 git ssh cmd bitbucket windows-7

我是git的新手,我正在按照这个bitbucket教程进行初始设置.在git bash窗口中,它显示为brnt @ brntslaptop,但如果我输入:

$ ls -a ~/.ssh
ls: /c/windows/system32/config/systemprofile/.ssh: No such file or directory.
Run Code Online (Sandbox Code Playgroud)

我认为这与我作为管理员或禁用UAC有关,但我不确定最好的方法.

这个答案是类似的 - 但我不认为从系统文件夹重定向到用户文件夹是个好主意,特别是如果另一个用户有同样的问题.其他类似的答案似乎做了一个符号链接或类似的解决方案.但我没有找到涉及系统配置文件的那个.

我还考虑将快捷方式属性"开始于:"从%HOME%更改为%USERPROFILE%,但〜似乎仍然解析为%HOME%

这种行为是否正常?使"〜"或%HOME%解析到我的用户目录的正确方法是什么?

Sup*_*ole 3

只需更改 %HOME% (或者实际上是 $HOME,因为 %HOME% 很可能根本没有设置)。

默认情况下,<git-install-dir>\etc\profile如果已设置 $HOME 并指向现有目录,则将 $HOME 设置为 %HOMEDRIVE%%HOMEPATH%,否则设置为 %USERPROFILE%。

因此,您可以编辑该文件,找到该行

HOME="$HOMEDRIVE$HOMEPATH"
Run Code Online (Sandbox Code Playgroud)

并将其删除或#在其前面添加一个以强制使用%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
Run Code Online (Sandbox Code Playgroud)

export LANG...行可以忽略。我用它来获取 Git GUI 和gitk的菜单和按钮中的英文文本,因为在我看来,翻译 Git 命令不会增加任何价值,只会造成混乱。