克隆通过http链接到/ var / www的git repo

时间:2014-10-16 10:01:01

标签: git apache git-clone

我有一个webserver apache2,它可以列出我计算机的/ var / www目录中的文件。 我有两个裸露的回购repo1.gitrepo2.git。第一个位于/var/www/git/repo1.git,第二个位于符号链接:

/var/www/git/repo2.git -> /other/folder/repo2.git

现在,如果我使用网络浏览器http://myserver.com/git/repo1.git,我可以看到裸仓库的内部文件,如果我转到myserver.com/repo1.git,我可以看到类似的文件(我也可以进入子目录)。

我可以通过repo1.git无问题地克隆git clone http://myserver.com/git/repo1.git

问题在于我尝试克隆repo2.git

fatal: repository 'http://myserver.com/git/repo2.git' not found

其他信息:

我已在repos中启用了post post-update。 我的apache.conf包括以下内容:

<Directory /var/www/git>
    Options +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride All
    order allow,deny
    Allow from all
</Directory>

你知道问题可能是什么吗?

1 个答案:

答案 0 :(得分:1)

我担心你不能通过http暴露你的文件系统并希望git能够正常工作。

Git内部有一个每个git客户端都能理解的API,这有助于Git跟踪文件系统之外的元信息。

拥有read here(特别是HTTP部分),您将知道git在每个操作(克隆,推送等)后面的步骤顺序。

如果您需要通过http托管自己的git服务器,我建议使用git-webbygitoliteGitlab

如果您的兴趣是学术性的,this blog将指导您使用Haskell从头开始实施git clone。