我最近在本地网络中的服务器中将GitLab和Docker安装在一起。我正在尝试迁移自己在PC上本地维护的存储库。 我将其通过本地网络中的本地HTTP服务器公开,这是一种解决方法,只是能够将其导入到GitLab ,因为GitLab管理面板中几乎所有可用的选项都类似于“从GitHub导入”,而且这些选项都无法解决我的问题(我的意思是:我不能仅上传存储库的.git
文件夹以导入它吗?-从规则上讲)-顺便说一句,我选择的是“按URL存储” :
我必须禁用一个安全设置,因为GitLab不允许从指向您本地网络中服务器的URL导入。因此,我在“出站服务”部分中启用了名为“允许从钩子和服务到本地网络的请求”的选项。
然后,我尝试使用名为“导入项目”的选项卡从GitLab创建一个新项目,并在其中填充表格。然后,它会继续运行很长一段时间,并显示“正在导入...”消息,直到它不断重试,直到显示此消息为止:
每次导入尝试均失败:将存储库http://111.222.33.44/path/to/my/repository/root/folder/.git导入myuser / my_project-13:CreateRepositoryFromURL:clone cmd wait:退出状态128。请重试。
我一直在阅读在线发布的Gitlab手册,关于GitLab的其他文章,在Google上搜索到此错误,并发现了数十张具有类似(但非常不同!)问题的票...但是我仍然不明白:为什么可以?我是立即上传我的存储库吗?
给出的URL本身不是问题 :如果将其键入Web浏览器,则可以在Web浏览器中清楚地看到项目的整个文件系统,并且如果添加{ {1}},我什至可以在浏览器中看到隐藏的/.git
文件夹的内容...但是,由于某些原因,这对于GitLab来说还不够...
对此我感到非常困惑。我发现的链接之一是Export a repository from a Gitlab server to another Gitlab server(请注意,我是从其他Gitlab导入的,但是是在PC中使用简单的.git
创建的简单git存储库。查找与我的远程内容类似的阅读材料案件可不是小菜一碟:我整天都在搜寻这件事,但没有成功...)。在该链接中,有一部分说:
您将收到有关克隆空存储库的警告。这是正常的。转到已签出存储库的工作目录,然后执行git pull
......所以我找到了安装GitLab的文件夹,其中创建了“空存储库”,并尝试从此处执行git init
命令,并将其路由到我的另一台本地服务器计算机。与此类似:
git pull
...按照我在上面链接中找到的说明,在另一侧成功制作了git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle
文件之后。但是,由于某种原因,我的GitLab服务器的CLI找不到命令.bundle
! (也许是包裹在某种git
上的?或者首先它没有包含在virtualenv
中?谁知道...)。无论如何,要拉到何处?没有工作目录可供提取!
还有其他我可以做的事情吗?我对Git的了解是有限的:我几乎总是独自使用它来自己管理存储库,而无需PATH
到任何地方,也不需要push
从任何地方(除了极少数例外)我的一个GitHub项目)。
我可能还要补充一点,the official Gitlab's manual about howto import projects包括从任何地方迁移的指令,除了原始的,未包装的,未使用的,正常的pull
命令行软件之外!
答案 0 :(得分:3)
我遇到了相同的错误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
字段(as the old screenshot in the docs also suggest内提供凭据):
导入后,它就像魅力一样-且速度很快。
答案 1 :(得分:0)
最后,真正的问题是对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
因此,“空白项目”成为“导入项目”。问题解决了!
答案 2 :(得分:0)
就我而言,此问题的根本原因是我的密码(由Gerrit创建的临时HTTP密码)中包含特殊字符。我必须不断生成密码,直到获得没有特殊字符的密码为止。