can';t通过http克隆git repos;未找到信息/参考
我试图使git存储库通过http进行只读访问 我是用老式的方式做的,因为我的主机系统上没有git http后端。也就是说,我只是将裸存储库放在一个http可访问的位置 我使用can';t通过http克隆git repos;未找到信息/参考,git,http,repository,clone,git-bare,Git,Http,Repository,Clone,Git Bare,我试图使git存储库通过http进行只读访问 我是用老式的方式做的,因为我的主机系统上没有git http后端。也就是说,我只是将裸存储库放在一个http可访问的位置 我使用git clone--bare在主机上成功创建了裸机存储库 现在,当我使用git clone将git指向新克隆时http://my.host.name/location,一条消息报告未找到存储库 当我捕获网络流量时,我看到git正在尝试访问http://my.host.name/location/info/refs。这可能会
git clone--bare
在主机上成功创建了裸机存储库
现在,当我使用git clone将git指向新克隆时http://my.host.name/location,一条消息报告未找到存储库
当我捕获网络流量时,我看到git正在尝试访问http://my.host.name/location/info/refs
。这可能会失败,因为存储库中没有info/refs
路径。相反,在存储库根目录的正下方有info
和refs
目录
显然,克隆的裸存储库的结构并不像客户机预期的那样。有人知道为什么会这样吗?您需要在服务器上运行,以生成“哑协议”工作所需的文件。尝试上述步骤
基本上,在完成git克隆--bare之后,您需要使用裸存储库运行
mv hooks/post-update.sample hooks/post-update
,然后执行一次git update server info
,然后您应该能够克隆repo。当远程设备在git存储库1.7.X上运行,而git客户端是1.8.X时,我就遇到了这个问题;我证明了这一点,将我的客户降到了1.7.X——这解决了问题。因此,确保git在“客户端”和“服务器端”上的版本相同。我运行的命令是git clone 还记得检查apache上是否启用了所需的模块。以下是git over HTTP所需的模块:
- 模组别名
- mod_cgi
- 摩登环境
我选择了
SSH
路径,而不是HTTP
路径。(+不要忘记.git
)
我也遇到了同样的问题,结果是因为服务器发送了charset=utf-8。另外,请参见,您需要在一个裸存储库中执行此操作
git clone *HTTP_path.git*