【问题标题】:Can I use a gitolite repository on a non-default port from windows?我可以在 Windows 的非默认端口上使用 gitolite 存储库吗?
【发布时间】:2012-01-30 21:29:44
【问题描述】:

我正在尝试在我的 linux 服务器上设置一些 git 存储库,以便与一些从事 Java 项目的朋友分享。我闻了一下,发现 gitolite 应该是一个很好的管理层,所以在查看了他们的文档后,我决定学习这个教程:

http://sites.google.com/site/senawario/home/gitolite-tutorial

在第 6 步之前一切都很顺利。在那里,用于存储库路径的语法不起作用,因为服务器上的 sshd 没有侦听默认端口,并且该语法不喜欢非默认端口,所以在更多研究我很快发现 git 支持 ssh://etc。唯一的问题是它需要在 URL 中包含完整的存储库路径。

当我到达第 7 步并且管理存储库无法推送时,我发现 gitolite 不喜欢完整路径。故障排除部分建议我创建一个主机别名,如下所示:

http://sitaramc.github.com/gitolite/sshhostaliases.html

这应该允许我使用 hostalias:reponame 作为路径。尽管要求每个用户都这样做很烦人,但我们还是采用了这种方法,却发现它根本不起作用。我们的用户正在运行 windows 和 msysgit。

总结一下:

  • 服务器的 sshd 监听一个非默认端口;这是无法更改的。
  • gitolite 似乎需要相对路径。相对路径仅在默认端口或使用主机别名时可用。
  • 我们的用户正在运行 Windows 7(不可更改)和 msysgit(可更改,如果有什么更好的吗?)。我们的设置似乎不喜欢主机别名。

是否有解决方案,还是我们必须放弃 gitolite 并找到其他东西?

【问题讨论】:

    标签: git ssh cmd msysgit gitolite


    【解决方案1】:

    查看编辑~/.ssh/config(来自 msysgit)是否适用于每个用户。在~/.ssh/config 文件中添加如下内容:

    Host gitserver
    Port 9999
    

    文件~/.ssh/config 是可选的,如果存在,ssh 将使用它。此外,~/.ssh 目录不得对其他人(chmod 700 ~/.ssh)可读。

    使用 gitolite 访问 git repo serverd 时,您实际上是在使用 ssh 传输。为确保 ssh(以及间接地,git)使用文件 ~/.ssh/config,您可以尝试以下诊断:

    $ ssh -v gitserver
    

    debug1: 前缀开头的前几行将告诉您 ssh 是否正在使用 ~/.ssh/config 文件 - 它会显示它使用的配置文件的完整路径。

    【讨论】:

    • 正如问题上所写,恐怕 msysgit 忽略了文件的内容。该文件首先不存在,只有目录,所以我什至不确定我是否为 msysgit 使用了正确的文件。
    • 它不显示任何配置文件路径。它确实表明它正在连接到配置文件中包含的正确服务器主机名,但是它忽略了端口并尝试 22。非常奇怪。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2020-02-02
    相关资源
    最近更新 更多