8

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

$ ls -a ~/.ssh
ls: /c/windows/system32/config/systemprofile/.ssh: No such file or directory.

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

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

我还考虑将快捷方式属性“Start In:”从 %HOME% 更改为 %USERPROFILE%,但 ~ 似乎仍然解析为 %HOME%

这种行为正常吗?使“~”或 %HOME% 解析到我的用户目录的正确方法是什么?

4

2 回答 2

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 命令不会增加任何价值,只会造成混乱。

于 2014-01-09T16:15:42.643 回答
0

我来到这里寻找一个原因,为什么在同一台 Windows 机器上,一个用户可以git config --list --global从 PowerShell 命令行使用,而另一个用户却不能。

基本上$HOME在 PowerShell 中有一个变量集指向正确的位置;但是,这不是要设置的git变量$env:HOME

为了解决这个问题,在无法列出其全局设置的用户上,我们运行了以下 PowerShell 命令:

[System.Environment]::SetEnvironmentVariable('HOME',$env:USERPROFILE,'User')
于 2021-03-03T17:45:32.313 回答