windows - 如何在 Windows 上通过 ssh 阻止 git 解析错误的路径?

标签 windows git ssh msysgit git-clone

我有一个带有 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/

相关文章:

c# - 在 Linux 上使用 C# 进行开发

windows - 在git中移动文件夹

git post-receive 无法正常工作

c# - 以 C#.Net 形式托管进程会禁用某些进程的按钮

windows - 是否可以在 Windows 中发现命名管道?

shell - ssh 可与我的自定义 shell 配合使用,但无法直接使用 ssh 执行命令

java - ubuntu中的命令执行

SSH远程端口转发指定接口(interface)

c# - LibUsbDotNet,没有 libusb-1.0.dll

git - 在窗口 git bash 中运行 shell 时找不到 sed 命令