我有一个带有ssh服务器设置的Windows 2003机器.我在本地和服务器上安装了msysgit(git版本1.6.2).
服务器具有以下我的存储库的绝对路径:
e:\vc\git\myrepo.git
当用户登录时,他/她将被放入以下工作目录:
e:\vc\git\
在我的开发机器上运行以下cmd时:
git clone ssh://myuser@myip/myrepo.git testrepo
我收到以下错误:
fatal: ''/myrepo.git'' does not appear to be a git repository
根据我的ssh日志,似乎git正在服务器上执行此cmd:
'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的速度更快.
如果您处于类似情况,这里有一篇很好的博客文章可以启动设置: