美文网首页程序员
Gitlab安装配置及旧git项目的导入

Gitlab安装配置及旧git项目的导入

作者: voxer | 来源:发表于2018-07-09 10:59 被阅读184次

    一直用Gitblit,最近要迁移到Gitlab上,记录一下安装和迁移的过程。

    1. Gitlab安装

    在CentOS上安装完全按照Gitlab的官网安装步骤 基本没有问题,最后一步

    sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
    

    可以先不用考虑EXTERNAL_URL,这个后面通过修改/etc/gitlab/gitlab.rb来设置。

    2. Gitlab配置

    80被占用了,这里先改成8888端口,修改/etc/gitlab/gitlab.rb来设置

    external_url 'http://外网ip:8888'
    

    修改完需要重启配置(这个重启要很久)

    gitlab-ctl reconfigure
    

    重启服务

    gitlab-ctl restart
    

    3. Gitlab管理

    我需要实现的目标是

    1. 因为是内部团队使用,所以取消注册功能


      image.png
    2. 新用户缺省不允许创建Project


      image.png
    3. API创建用户,
      可能需要创建的用户比较多,同时需要取消邮件确认和创建group权限。可以考虑通过API来创建,命令如下:

    //如果在win10的powershell下运行,需要先运行这句
    Remove-item alias:curl
    curl --header "PRIVATE-TOKEN: XtgossbudeEerKMbhy" --data "password=badfe@12312&email=xxx@qq.com&username=cengh&name=%E7%8E%8B%E8%80%81%E4%BA%8C&can_create_group=false&skip_confirmation=true" "http://外网ip:8888/api/v4/users"
    
    • PRIVATE-TOKEN参数是指有权限创建用户的管理员账号的一个token,在自己的账号setting上能创建和获取到。


      image.png
    • password最好复杂一下,不能太简单。否则会有错误
    • name如果是中文,需要转码,否则也有错误


      image.png
    • can_create_group=false:表示禁止创建组
    • skip_confirmation=true:表示跳过邮件确认

    更多参数可以参考Gitlab的API文档

    4. 导出旧项目然后导入到Gitlab

    如果只把源码导出再导入,那么所有分支包括分支的所有历史记录都没有了。可以通过以下命令来实现把项目respository完全镜像clone下来,包括所有分支和记录。

    git clone --bare git://github.com/username/project.git
    

    下载下来的目录不是源代码,而是类似以下的目录结构:


    image.png

    最后在gitlbab上先创建一个新的respository,然后命令行进入到以上的目录下,执行git push命令把旧的镜像推送到新的gitlab上的respository里。

    cd project.git
    git push --mirror git@你的gitlab的ip/newproject.git
    

    相关文章

      网友评论

        本文标题:Gitlab安装配置及旧git项目的导入

        本文链接:https://www.haomeiwen.com/subject/ocqzuftx.html