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目...
prometheus+grafana监控nginx
@Mr.Q: