我有一个安装了Gitlab的帐户,在其中创建了存储库“ ffki-startseite”
现在,我想git://freifunk.in-kiel.de/ffki-startseite.git
使用所有提交和分支将存储库克隆到该存储库中,这样我就可以在自己的范围内开始使用它了。
如何导入?
我有一个安装了Gitlab的帐户,在其中创建了存储库“ ffki-startseite”
现在,我想git://freifunk.in-kiel.de/ffki-startseite.git
使用所有提交和分支将存储库克隆到该存储库中,这样我就可以在自己的范围内开始使用它了。
如何导入?
Answers:
通过在计算机上本地运行的以下命令,我能够将项目以及所有提交,分支和标签完全导出到gitlab:
为了说明我的示例,我将使用https://github.com/raveren/kint作为要导入gitlab的源存储库。我事先在gitlab中创建了一个名为
Kint
(在namespace下raveren
)的空项目,它告诉我新创建的项目的http git url是http://gitlab.example.com/raveren/kint.git这些命令与操作系统无关。
在新目录中:
git clone --mirror https://github.com/raveren/kint
cd kint.git
git remote add gitlab http://gitlab.example.com/raveren/kint.git
git push gitlab --mirror
现在,如果您有一个本地克隆的存储库要与新遥控器一起使用,只需在其中运行以下命令*:
git remote remove origin
git remote add origin http://gitlab.example.com/raveren/kint.git
git fetch --all
*这是假设您没有从中重命名远程主机origin
,否则,请更改前两行以反映它。
将新的gitlab远程添加到您现有的存储库中,然后推送:
git remote add gitlab url-to-gitlab-repo
git push gitlab master
git push gitlab master -f
。现在,我在新的GitLab中拥有所有提交的全部回购;)谢谢
保留所有标签和分支
只需在 existing Git repository
cd existing_repo
git remote rename origin previous-hosts
git remote add gitlab git@git.hutber.com:hutber/kindred.com.git
git push -u gitlab --all
git push -u gitlab --tags
这是Gitlab提供的步骤:
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.example.com/rmishra/demoapp.git
git push -u origin --all
git push -u origin --tags
这是回购到新位置的基本步骤。我一直都用这个顺序。使用--bare 将不会看到源文件。
打开Git Bash。
创建存储库的裸克隆。
git clone --bare https://github.com/exampleuser/old-repository.git
镜像推送到新存储库。
cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
删除您在步骤1中创建的临时本地存储库。
cd ../
rm -rf old-repository.git
为什么要镜像?请参阅git的文档:https : //git-scm.com/docs/git-push
--all推送所有分支(即refs / heads /下的refs);不能与其他一起使用。
--mirror指定将refs /(包括但不限于refs / heads /,refs / remotes /和refs / tags /)下的所有ref镜像到远程存储库,而不是将每个ref命名为push。新创建的本地裁判将被推送到远程端,本地更新的裁判将在远程端强制更新,而已删除的裁判将从远程端删除。如果设置了配置选项remote..mirror,则为默认设置。
rake gitlab:import:repos可能是更适合批量导入的方法:
repos_path
(/home/git/repositories/group/repo.git
)下的原始存储库。目录名称必须.git
以组或用户命名空间结尾且在其下。bundle exec rake gitlab:import:repos
所有者将是第一个管理员,如果尚不存在,将创建一个组。
git clone --mirror git@github.com:username/repo-name.git
git remote add gitlab ssh://git@servername.com/username/repo.git
git push -f --tags gitlab refs/heads/*:refs/heads/*
最好通过ssh进行操作,https可能无法正常工作
有关GitLab文档的详细说明:
https://docs.gitlab.com/ee/user/project/import/github.html
确保要映射到GitLab用户的所有GitHub用户都具有以下任一条件:
在顶部导航栏中,单击+,然后选择新建项目。
但是,请阅读GitLab文档页面以获取详细信息和挂钩!
(不多)