【问题标题】:Is there a reason why you shouldn't mix ssh and smart http access with git?是否有理由不将 ssh 和智能 http 访问与 git 混合使用?
【发布时间】:2013-04-02 14:36:20
【问题描述】:

我已经为一个小团队使用 gitolite 建立了一个 git 服务器。我们中的一个人创建了一个 repo 并使用智能 http 推送了初始提交 - 假设它位于

http://ourhost/project.git

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

git clone git@ourhost:project.git

Git 让我这样做并创建了项目文件夹,但报告说 repo 是 empty。 此外,我所做的任何 git pull 都给了我“找不到远程 ref master”错误。 然后我跑的时候

git remote -v show origin 

它显示 HEAD 分支:(未知)。当我检查服务器(运行 gitlab)时,我可以看到 master 分支和所有代码,所以很明显。

最后我使用智能 http 和 lo 克隆了它,发现一切正常,我可以继续使用它。

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

还是我错过了什么……?

【问题讨论】:

  • 你运行的是哪个版本的 GitLab? GitLab 5.x 不再使用 Gitolite。您使用的是哪个版本的 Gitolite?
  • 我正在使用版本 4...也许我应该升级,您认为这个问题可能与我使用旧版本有关吗?
  • 而gitolite是3.2版
  • V5 对 Gitolite 没有问题。至于V4,我担心使用智能http,你完全绕过了gitolite。
  • 我明白了,好的 - 所以你的意思是你只需要选择一种方法并坚持下去(至少对于这些版本)。我们可以做到 - 谢谢!

标签: git gitolite git-remote


【解决方案1】:

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

由于GitLab V5 doesn't use Gitolite anymore(但现在改用gitlab-shell),ssh和https访问都可以更一致地使用访问权限管理。

【讨论】:

  • 仅供参考:我现在已经升级到 5.0 并且可以确认它可以愉快地与 git@ 和 http 访问一起使用。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
相关资源
最近更新 更多