Seb*_*SBM 5 git gitlab-omnibus gitlab-ce
我最近在本地网络的服务器中安装了带有 Docker 的 GitLab。我正在尝试迁移我在 PC 中本地维护的存储库。我通过本地网络中的本地 HTTP 服务器公开它作为解决方法,只是为了能够将其导入 GitLab,因为 GitLab 管理面板中几乎所有可用的选项都类似于“从 GitHub 导入”,这些选项都没有帮助在我的情况下(我的意思是:我不能只上传我的存储库.git文件夹来导入它吗? -retorically 说)顺便说一句,我选择的是“通过 URL 存储”:
我不得不禁用一个安全设置,因为 GitLab 不允许从指向本地网络中服务器的 URL 导入。因此,我在出站服务部分打开了名为“允许从钩子和服务向本地网络发出请求”的选项。
然后,我尝试从 GitLab 创建一个新项目,使用名为“导入项目”的选项卡并在其中填写表单。然后,它会持续运行很长时间,并显示“正在导入...”消息,看起来它一直在一遍又一遍地重试,直到显示此消息:
每次导入尝试都失败:将存储库http://111.222.33.44/path/to/my/repository/root/folder/.git导入 myuser/my_project 时出错- 13:CreateRepositoryFromURL: clone cmd wait: exit status 128. 请尝试再次。
我一直在阅读在线发布的 Gitlab 手册,关于 GitLab 的不同文章,搜索有关此错误的信息并发现了数十张具有类似(但非常不同!)问题的票......但我仍然不明白:为什么我不能立即上传我的存储库?
给定的 URL本身不是问题:如果我在网络浏览器中输入它,我可以在网络浏览器中清楚地看到我项目的整个文件系统,如果我添加/.git到它,我什至可以看到隐藏.git文件夹的内容在我的浏览器中......但是,出于某种原因,这对于 GitLab 来说还不够......
我对此感到非常困惑。我找到的链接之一是将存储库从 Gitlab 服务器导出到另一台 Gitlab 服务器(请注意,我不是从其他 Gitlab 导入的,而是在 PC 中创建的一个简单的 git 存储库,使用简单的 .findinggit init阅读材料远程类似于我的案例不是小菜一碟:我一整天都在寻找这个问题,但没有成功......)。在该链接中,有一部分内容是:
您将收到克隆空存储库的警告。这是正常的。切换到已签出存储库的工作目录并执行 git pull
...所以我找到了我的 GitLab 安装创建“空存储库”的文件夹,并尝试git pull从那里执行命令,将其路由到我的其他本地服务器机器。类似的东西:
git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle
Run Code Online (Sandbox Code Playgroud)
....bundle在另一侧成功创建文件后,按照我在上述链接中找到的说明进行操作。但是,出于某种原因,我的 GitLab 服务器的 CLI 找不到命令git!(也许是被某种东西包裹了virtualenv?或者更确切地说,它最初没有被包括在内PATH?谁知道......)。无论如何,拉到哪里?没有工作目录可供拉取!
我还有什么可以做的吗?我对 Git 的了解是有限的:我几乎总是单独使用它来维护自己的存储库,不需要在push任何地方使用它们,也不需要pull从任何地方使用它们(除了我的一个 GitHub 项目很少见)。
我可能要补充一点,Gitlab 官方手册关于如何导入项目包括从任何地方迁移的说明,除了原始的、未包装的、未加糖的、普通的git命令行软件!
我有同样的错误Error importing repository http://111.222.33.44/path/to/my/repository/root/folder/.git into myuser/my_project - 13:CreateRepositoryFromURL: clone cmd wait: exit status 128. Please try again.。
就我而言,我必须提供用户名和密码,因为我从中导入的存储库是用它 (gitblit) 保护的。我也尝试了很多方法,但最终似乎是 GitLab 故障。对我来说,使用所提供的字段Username (optional),并Password (optional) 没有工作!我必须直接在Git repository URL字段内提供凭据(如文档中的旧屏幕截图所示):
有了这个,导入就像一个魅力 - 并且速度很快。
最后,真正的问题实际上是对 GitLab 的 Web 菜单如何工作的误解。
当您在 GitLab 的 Web 界面中单击“新建项目”时,有 3 个选项卡可供选择:
我不认为“空白项目”是正确的选择...我的意思是...“我正在尝试将我的项目导入 GitLab”是我的想法,所以我尝试从“导入项目”选项卡(这就是为什么我最终发布了这个问题)...但是,尝试从“空白项目”解决了我的问题。
我只是放弃了我的提交历史记录,并尝试根据当前的项目文件状态从头开始创建一个新的存储库。但是,出乎意料的是,在创建“空白项目”后,GitLab 指示我将我的存储库导入到这个“空白项目”中。我引用:
CMD Instructions - Existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.somedomain.net/myuser/someblank-domain.git
git push -u origin --all
git push -u origin --tags
Run Code Online (Sandbox Code Playgroud)
于是,“空白项目”变成了“引进项目”。问题解决了!
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |