有没有理由不将ssh和智能http访问与git混合使用?

Son*_*ens 5 git gitolite git-remote

我已经为一个小团队使用gitolite建立了一个git服务器.我们中的一个人创建了一个repo并使用智能http推送了初始提交 - 让我们说它驻留在

http://ourhost/project.git
Run Code Online (Sandbox Code Playgroud)

然后我继续使用ssh克隆项目

git clone git@ourhost:project.git
Run Code Online (Sandbox Code Playgroud)

Git让我这样做并创建了项目文件夹,但报告说repo是空的.此外,我做的任何git pull都给了我" 找不到远程ref master "的错误.当我跑了

git remote -v show origin 
Run Code Online (Sandbox Code Playgroud)

它显示了HEAD分支:(未知).当我检查服务器(运行gitlab)时,我可以看到主分支和所有代码,所以它显然在那里.

最后我使用智能http和lo克隆它,看到它一切正常,我可以继续使用它.

但为什么会这样呢?为什么我们每个人使用哪种方法推/拉都很重要?Gitlab甚至将两个URL(对于ssh或smart http)显示为repos的替代品,因此它似乎可以工作......)

或者我错过了什么......?

Von*_*onC 3

对于 GitLab V4 和 Gitolite,ssh 仍然是首选的访问方法。
https 访问可以完全绕过 Gitolite。

由于GitLab V5不再使用Gitolite(而是现在使用gitlab-shell),因此ssh和https访问都可以与访问权限管理更加一致地使用。