1.创建一个新的文件夹把git存储库导入

新文件夹需要具有git用户所有权以及git用户及其组的读/写/执行访问权限:

sudo -u git mkdir /var/opt/gitlab/git-data/repositories/new_group

2.复制存储库到文件夹

在任何子文件夹中找到的任何.git存储库都将作为项目导入 将根据需要创建组,这些组可以是嵌套文件夹。

例:如果我们将repos复制到/var/opt/gitlab/git-data/repositories,并且repo A需要在G1和G2组之下,则必须在这些文件夹下创建:/var/opt/gitlab/git-data/repositories/G1/G2/A.git

sudo cp -r /old/git/foo.git /var/opt/gitlab/git-data/repositories/new_group
sudo chown -R git:git /var/opt/gitlab/git-data/repositories

foo.git 需要由git用户和git用户组拥有。
如果您从源代码使用安装,请替换/var/opt/gitlab/为/home/git

3.根据您的安装类型运行以下命令

Omnibus安装

sudo gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repositories']

源代码安装

在运行此命令之前,您需要将目录更改为GitLab安装所在的目录:

cd /home/git/gitlab
 sudo -u git -H bundle exec rake gitlab:import:repos['/var/opt/gitlab/git-data/repositories'] RAILS_ENV=production

实例输出:

Processing /var/opt/gitlab/git-data/repository-import-1/a/b/c/blah.git
 * Using namespace: a/b/c
 * Created blah (a/b/c/blah)
 * Skipping repo  /var/opt/gitlab/git-data/repository-import-1/a/b/c/blah.wiki.git
Processing /var/opt/gitlab/git-data/repository-import-1/abcd.git
 * Created abcd (abcd.git)
Processing /var/opt/gitlab/git-data/repository-import-1/group/xyz.git
 * Using namespace: group (2)
 * Created xyz (group/xyz.git)
 * Skipping repo /var/opt/gitlab/git-data/repository-import-1/@shared/a/b/abcd.git
[...]

从散列存储库导入裸存储库

背景
旧存储中的项目具有一个目录结构,该结构反映了GitLab中的完整项目路径,包括其命名空间结构。裸存储库导入程序利用此信息将项目导入其适当的位置。每个项目及其父命名空间都有名称。
但是,散列存储中的项目的目录结构不包含此信息。这有利于各种原因,尤其是改进的性能和数据完整性。有关详细信息,请参阅
 存储库存储类型。

哪些存储库是可导入的?

GitLab 10.3或更早版本
不支持从散列存储导入裸存储库。

GitLab 10.4及更高版本
为了支持从散列存储导入裸存储库,GitLab 10.4及更高版本将每个存储库的完整项目路径存储在git存储库配置文件的特殊部分中。本节格式如下:
[gitlab]
    fullpath = gitlab-org/gitlab-ce
但是,现有存储库未迁移以包含此路径。
如果GitLab 10.4及更高版本中的存储库发生以下事件,则可以导入裸存储库:

创建
迁移到散列存储
改名
转移到另一个名称空间
祖先改名
祖先转移到另一个命名空间

GitLab 10.4及更高版本无法导入裸存储库时,以下所有内容都适用于存储库:

它是在GitLab 10.3或更早版本中创建的。
它未在GitLab 10.4及更高版本中重命名,传输或迁移到散列存储。
它的祖先命名空间未在GitLab 10.4及更高版本中重命名或传输。

有一个未解决的问题是添加迁移以使所有裸存储库都可导入。
在此之前,您可能希望自己手动迁移存储库。您可以使用
 Rails控制台 
执行此操作。在Rails控制台会话中,运行以下命令以迁移项目:

project = Project.find_by_full_path('gitlab-org/gitlab-ce')
project.write_repository_config

在Rails控制台会话中,运行以下命令以迁移所有命名空间的项目(如果命名空间中有1000个项目,这可能需要一段时间):

namespace = Namespace.find_by_full_path('gitlab-org')
namespace.send(:write_projects_repository_config)
注意:设置该项目的权限所有者为(第一个管理员),创建组包括子组1.创建一个新的文件夹把git存储库导入新文件夹需要具有git用户所有权以及git用户及其组的读/写/执行访问权限:sudo -u git mkdir /var/opt/gitlab/git-data/repositories/new_group2.复制存储库到文件夹在任何子文件夹中找到的任何.git存储... 说明:我这里都是以gitlab默认的安装路径来操作,如果你的位置不在这里更换即可 注意:这里目标仓不需要创建文件,必须要使用gitlab默认的repositories仓文件 2,执行gitlab导入命令 gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repositori. 对 gitlab 数据进行迁移之前要保证两个gitlab服务器的版本一直,否则可能会迁移失败 查看 gitlab 服务器版本: cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 原始仓 1. 代码仓数据 // 1. gitlab的数据都在这个目录下,存储的方式是按照 Project ID 的hash值进行保存的 cd /var/opt/gitlab/git-data/repositories tree -L
1、首先准备两个不同的Gitlab,我在192.168.190.147虚拟机中搭建了一个Gitlab,在192.168.190.146虚拟机中搭建了另一个Gitlab。接下来示范,将146中的仓迁移到147中。 2、登录146虚拟机中的Gitlab平台页面,在146虚拟机中创建一个名为test_146的仓,并在仓中创建一个名为test_146_file的测试文件。 3、记...
sudo cp -r /home/chen /share/gitlab/git-data/repositories/ sudo chown -R git:git /share/gitlab/git-data/repositories/chen 2. 导入工程 sudo git...
GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。 但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。 在网上发现了这篇文档——Import bare re...
环境介绍:CentOS 6.7gitlab:6.3.1需求:gitlab从A服务器迁移至B服务器第一、在B服务器上部署gitlab环境参考《GitLab完整搭建(版本6.3.1)》第二、备份A服务器上的数据1).打包仓文件#su-git $cd/home/git/ $tarzcvfrepositories.tar.gz./repositories2).备份sql文件$...
怎么迁移更快呢? 下面 orange 就给你说说,让你实现批量项目快速迁移; (1)在原来的代码或项目存储的位置进行打包(/vat/opt/gitlab/git-data/repositories); # tar czvf group_xxx.tar.g... GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓,可通过Web界面进行访问公开的或者私人项目。 与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓的访问,它非常易于浏览提交过的版本并提供一个文件历史。团队成员可以利用内置的简单聊天程序(Wall)进行交流。 它还提供一个代码片段收集功能可...
[root@localhost backups]# gitlab-rake -help rake [-f rakefile] {options} targets... Options are ... --backtrace=[OUT] Enable full backtrace. OUT can be stderr (default) or stdo...
1.1 修改仓存储位置 gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-data/repositories,通常需要更改此路径到单独的一个分区来存储的数据。 例如我这里把数据存放到/data/gitlab目录下 创建/data/gitlab目... 写得赞,博主用心了。 此国产日志 https://github.com/ydf0509/nb_log 使用原生 loggng封装,兼容性和替换性100%。 1、日志能根据级别能够自动变彩色。 2、print自动变彩色。 3、日志和print在pycahrm控制台的输出都自动可以点击跳转到文件和行号。4、多进程日志切割安全,文件日志写入性能高 5、入参简单,能一键自动记录到多种地方. 相比 loguru 有10胜。 pip install nb_log 。 prometheus+grafana监控nginx @Mr.Q: 模板有没有汉化的