0

我曾与 CVS、SVN、Mercurial 合作过……但每次我尝试用 GIT 做一些事情时,我似乎都不理解它的理念。

我有一个私人 Rhodecode 服务器,我想在其中拥有一个公共 git 存储库的副本。

执行了以下步骤:

  • 我克隆了公共存储库
  • 将它复制到我的 rhodecode 服务器到一个空的 git 存储库中
  • 在另一台机器上做了一个 git clone
  • 创建了一个分支并做了一些修改
  • 犯罪
  • 推送:“拒绝更新非裸存储库中的分支”

如果我克隆为裸存储库,我没有工作副本,所以这似乎也没有解决方案。

为什么我无法将更改推送到服务器?是否有另一个工作流程可以将公共 repo 导入 Rhodecode ?

您可以更改一些 git 选项以忽略此错误,但我觉得这不是一个合适的解决方案。

在 Mercurial 之类的东西中,这不是问题,但 GIT 相当神秘。

4

2 回答 2

0

为了安全地交换服务器端的信息,RhodeCode 需要在 GIT 裸存储库上进行操作。服务器端这是允许交换的唯一方法。客户端您只需以非裸格式获取存储库。

作为 RhodeCode 团队,我们是否可以在任何地方提供更多信息,以便第一次使用它的人更清楚?

于 2016-11-27T23:15:13.867 回答
0

Igal S 的问题让我眼前一亮。

互联网上有很多关于裸和非裸 git 存储库的令人困惑的信息。实际上,这个概念似乎很简单:裸存储库没有工作副本,并且应该是您想要推送更改的远程服务器上的类型。
解决方案很简单:

  • 将公共存储库克隆为裸机
  • 将其复制到 rhodecode 存储中。

    在此之后,它按预期工作。
于 2016-11-27T16:28:19.840 回答