我试图在Windows上设置一个git服务器,但是我有一些问题让它全部工作。
我在本地创建了一个普通的存储库,并远程创建了一个裸存储库。在本地存储库中,我添加了一个文本文件并提交了它,但是当我尝试将其推送到远程存储库时,我总是收到以下消息:
fatal: protocol error: bad line length character: fata
我搜索了SO和其他来源,他们中的大多数人认为这是关于命令回声的问题。我使用freeSSHd作为SSH解决方案(远程存储库托管在Windows服务器上),我尝试使用git bash和windows CMD作为命令shell。
我使用/Q
启动CMD以禁用回显,并使用/K
将目录更改为存储库所在的目录,因此我认为这不会有问题。
使用远程桌面,我可以将存储库克隆到它旁边的文件夹,并在本地使用git bash,我可以访问SSH shell并以相同的方式克隆存储库。但是使用git clone ssh://<address>:/myRepo.git
我总是得到上面的消息(SSH&#39的工作文件夹与存储库所在的位置相同)。有没有人知道发生了什么?如何查看触发错误的命令,以及如何查看完整的错误消息?
答案 0 :(得分:1)
我也使用freeSSHd
作为Windows上git服务器的ssh解决方案遇到了同样的错误。我整整一天找不到解决方案而放弃了。 :(
后来我发现来自Bitvise
的另一个名为WinSSHD
的强大ssh服务器运行良好。它有免费版供个人使用。我建议你切换到它。虽然我也想知道我们遇到的错误是否有解决方法。
使用WinSSHD
设置ssh服务器非常简单,您可以添加具有私钥/公钥访问权限的虚拟帐户。
关键部分是为git服务器设置ssh访问。请按照博客here的步骤进行操作。
它应该适用于Windows git客户端。对于Mac,您可能会遇到如下错误。
grp.sh: No such file or directory
fatal: Could not read from remote repository.
要解决此问题,您需要在系统环境变量{{1}中配置的git bin目录(gup.sh
或grp.sh
中创建两个文件GIT_PATH/bin
和GIT_PATH/libexec/git-core
你的git服务器。
PATH
的内容:
gup.sh
git-upload-pack.exe $*
的内容:
grp.sh