我可以在windows的非默认端口上使用gitolite存储库吗?
我正在尝试在我的linux服务器上设置一些git存储库,以便与一些从事Java项目的朋友共享。我四处嗅了嗅,发现gitolite应该是一个很好的管理层,所以在查看了他们的文档后,我决定遵循本教程: 在第六步之前,一切都很顺利。在这里,用于存储库路径的语法不起作用,因为服务器上的sshd没有监听默认端口,并且该语法不喜欢非默认端口,所以在进一步研究之后,我很快发现git支持ssh://etc. 唯一的问题是它要求URL中包含完整的存储库路径 当我到达第7步,管理员存储库推送失败时,我发现gitolite不喜欢完整路径。疑难解答部分建议我创建如下主机别名: 这应该允许我使用hostalias:reponame作为路径。尽管要求每个用户都这样做很烦人,我们还是采用了这种方法,结果发现它根本不起作用。我们的用户正在运行windows和msysgit 总结如下:我可以在windows的非默认端口上使用gitolite存储库吗?,git,ssh,cmd,msysgit,gitolite,Git,Ssh,Cmd,Msysgit,Gitolite,我正在尝试在我的linux服务器上设置一些git存储库,以便与一些从事Java项目的朋友共享。我四处嗅了嗅,发现gitolite应该是一个很好的管理层,所以在查看了他们的文档后,我决定遵循本教程: 在第六步之前,一切都很顺利。在这里,用于存储库路径的语法不起作用,因为服务器上的sshd没有监听默认端口,并且该语法不喜欢非默认端口,所以在进一步研究之后,我很快发现git支持ssh://etc. 唯一的问题是它要求URL中包含完整的存储库路径 当我到达第7步,管理员存储库推送失败时,我发现gito
- 服务器的sshd侦听非默认端口;这是无法改变的
- gitolite似乎需要相对路径。相对路径仅在默认端口或使用主机别名时可用
- 我们的用户正在运行Windows7(不可更改)和msysgit(可更改,如果有更好的吗?)。我们的设置似乎不喜欢主机别名
这有解决办法吗?还是我们必须放弃gitolite,寻找其他解决办法 查看编辑
~/.ssh/config
(来自msysgit)是否适用于每个用户。在~/.ssh/config
文件中添加如下内容:
Host gitserver
Port 9999
该文件是可选的,如果存在,ssh将使用该文件。另外,其他人不能读取~/.ssh
目录(chmod 700~/.ssh
)
当使用gitolite访问git repo serverd时,实际上使用的是ssh传输。为了确保ssh(以及间接的git)使用文件~/.ssh/config
,您可以尝试以下诊断:
$ ssh -v gitserver
以
debug1:
前缀开头的前几行将告诉您ssh是否正在使用~/.ssh/config
文件-它将向您显示它所使用的配置文件的完整路径。如问题所述,msysgit恐怕忽略了该文件的内容。该文件首先不存在,只存在于目录中,因此我甚至不确定是否为msysgit使用了正确的文件。它没有显示任何配置文件路径。它确实显示它正在连接到配置文件中包含的正确服务器主机名,但是它忽略了端口并尝试22。很奇怪。