无法通过HTTP克隆远程Git镜像,但可以通过SSH克隆

时间:2011-02-06 16:43:08

标签: git http ssh

我想镜像我的git存储库,所以我通过SSH执行了以下操作:

$ mkdir tvshowtracker.git
$ cd tvshowtracker.git
$ git init --bare

然后,本地:

$ git remote add rolisoftdotnet ssh://rolisoft@rolisoft.net/repos/tvshowtracker.git
$ git push rolisoftdotnet master

现在,如果我想在其他地方克隆我的存储库,那么如果我通过SSH执行它就可以了:

$ git clone ssh://rolisoft@rolisoft.net/repos/tvshowtracker.git
Cloning into tvshowtracker...
rolisoft@rolisoft.net's password:
remote: Counting objects: 1423, done.
remote: Compressing objects: 100% (460/460), done.
remote: Total 1423 (delta 953), reused 1423 (delta 953)
Receiving objects: 100% (1423/1423), 2.08 MiB | 355 KiB/s, done.
Resolving deltas: 100% (953/953), done.

但是,如果我想通过HTTP执行此操作,则会因此错误而失败:

$ git clone http://lab.rolisoft.net/repos/tvshowtracker.git
Cloning into tvshowtracker...
warning: remote HEAD refers to nonexistent ref, unable to checkout.

我尝试发布我在相关帖子中看到的每个命令,但没有任何帮助。

我刚刚开始玩git,所以我不知道90%的命令是做什么的,但我还是试过了。

$ git push --all rolisoftdotnet
$ git branch -r
$ git branch master rolisoftdotnet/master
$ git checkout master

我希望HTTP访问的原因是为我的项目提供公共只读访问权限。

1 个答案:

答案 0 :(得分:3)

尝试在服务器存储库上运行git update-server-info。如果您希望通过愚蠢的HTTP传输可以获取它,则需要在推送到存储库之后执行此操作。