我有一个带有 ssh 服务器设置的 Windows 2003 机器。我在本地和服务器上都安装了 msysgit(git 版本 1.6.2)。
服务器有以下到我的 repos 的绝对路径:
e:\vc\git\myrepo.git
当用户登录时,他/她将被放入以下工作目录:
e:\vc\git\
在我的开发机器上运行以下命令时:
git clone ssh://myuser@myip/myrepo.git testrepo
我收到以下错误:
fatal: ''/myrepo.git'' does not appear to be a git repository
根据我的 ssh 日志,git 似乎正在服务器上执行此命令:
'cmd.exe /c git-upload-pack '/myrepo.git''
出于同样的原因,在本地(在服务器上)执行该命令失败。我认为问题与 git 在路径前加上“/”前缀有关。我如何告诉 git 不要这样做?这应该有效吗?
注意:git-upload-pack 正在运行,因为我将\gitinstallpath\libexec\git-core 添加到路径中。显然这是一个错误,将来会修复,这是我的解决方法。
最佳答案
我通过将我的 ssh 服务器从 winssh 切换到 openssh(通过 cygwin 层)解决了这个问题。我能够使用 winsshd 正常连接(如上所述),但 winsshd 无法正确处理前缀为“/”的路径。我可能可以让 winsshd 工作,但切换到 cygwin 和 openssh 更快。
这是一个 good blog post如果您处于类似情况,请启动设置:
关于windows - 如何在 Windows 上通过 ssh 阻止 git 解析错误的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1092583/