我想镜像我的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访问的原因是提供对项目的公共(public)只读访问。
最佳答案
尝试在服务器存储库上运行git update-server-info
。如果希望通过愚蠢的HTTP传输可获取存储库,则需要在将其推送到存储库之后执行此操作。