gitlab_gitlab安装 - CSDN
gitlab 订阅
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。 展开全文
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
信息
管理工具
Git
外文名
Gitlab
适    用
仓库管理系统
功    能
wiki和issue跟踪
安装要求
Ubuntu/Debian
属    性
web服务
gitlab含义
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用Ruby语言写成。后来,一些部分用Go语言重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。 [1] 
收起全文
精华内容
参与话题
  • GitLab 是基于 Git 的基础上而创建的一个功能更加强大的web版本管理系统,它主要分为社区版和商业版,商业版与社区版主要的区别是:商业版提供了更加丰富的一些功能,但它们的核心功能都是一样的。 ...
  • Gitlab的使用(内含Git命令大全)

    万次阅读 多人点赞 2020-04-26 15:54:17
    gitlab使用流程标签(空格分隔): gitlab1、前言使用svn的同学抓(dan)狂(sui)的问题?没有网时候想commit怎么办?svn服务器宕机一天,技术团队抓狂,抱怨运维不给力非核心成员想贡献自己的力量却无论为力每每想...

    gitlab使用流程

    标签(空格分隔): gitlab

    1、前言

    使用svn的同学抓(dan)狂(sui)的问题?

    • 没有网时候想commit怎么办?svn服务器宕机一天,技术团队抓狂,抱怨运维不给力
    • 非核心成员想贡献自己的力量却无论为力
    • 每每想看一下svn上的配置文件或者代码,不能在线看,必须下载。这尼玛能忍?顶你个肺的,不能直接下载,必须要要安装个小乌龟(svn客户端)。
    • 昨天那入职的新同事今天尽然离职了,仙人板板的,昨天才给他开的svn权限,这下惨了,代码都被他带走了。他是不是(小米)派来(华为)的卧底?
    • 第一天上班,连上svn,一眼望去dcsp,dcp,garfield,bs4api。谁能告诉我这都是什么鬼,有没有个wiki,让我快速上手?
    • 老员工:)svn做codereview不方便,安装个reviewboard撒,对了,别忘了开发工具中还要安插件才能用。(新同事:)什么鬼,又要我学新东西?

    2、svn与git的恩怨情仇

    2.1 svn与git对比

    . svn git
    分布式 不是
    在线阅读 不支持 不仅支持,而且可以在线编辑
    存储方式 按文件 按元数据
    完整性 一般
    离线工作 日志都没法看 完全没问题
    分支 分支是一个完整的目录 随意开辟无限个分支

    GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
    如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

    2.2 Git 与 SVN 区别点:

    1、 GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
    2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
    3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
    4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
    5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    2.3 svn与git工作流程

    2.3.1 svn工作流程

     

    2.3.2 git工作流程

    2.3.3 快速理解svn与git的本质区别

    从上图中可以看出,svn是集中式的,git是分布式的。仔细看图会发现其实git的工作模式下每个开发者(安装了git客户端)的电脑就等同于传统的一个svn服务器。这也就是为什么说他是分布式的原因。对于初学者,需要理解svn工作模式下commit后工具基本完毕,其他人可以下载你的代码。但是在git下commit后还需要你push一下,这也是有使用svn背景的人需要做思想转变的地方。

    2.4 Git 工作区、暂存区和版本库

    2.4.1 基本概念

    • 工作区:就是你在电脑里能看到的目录。
    • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
    • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    2.4.2 工作区、版本库中的暂存区和版本库之间的关系

     

    此处输入图片的描述

    3、gitlab的使用

    gitlab抄的github,GitLab拥有GitHub拥有的一切,但他拥有更多

    1. 非常便捷的用户界面,在同一界面上获取到:projects,最近的projects,用户,最近的用户,群组和状态;
    2. 允许设置仓库权限是公用的还是私有的
    3. “Snippet support”让用户分享一个project的部分代码,而不是整个project。
    4. 受保护的分支是一种提升代码安全性的新方法,它们允许用户设置project的获取权限,所以一个团队中只有特定的人可以push,force,push或者删除一个分支的代码
    5. Authentication levels更进一步的提升安全性,允许用户给人读写以外的权限。举例来说,你可以给一个组员跟踪变动的权限却不给他获取代码的权限。
    6. 你可以设置获取到团队的整体的改进进度,而不是你个人的进度
    7. 开发者通过打上“仍在进行中”状态标签让其他成员知道代码没有完成,从而阻止未完成的代码合并到其他的代码中
    8. “innersourcing”公司的资源如果员工不再权限范围内,将不知道这个资源的存在。

    3.1 使用前的准备工作

    3.1.1 注册登录

    3.1.2 个性设置

    1、设置自己的帅气头像
    访问:http://git.100credit.cn/profile,自行设置,无上限。
    2、设置code style:http://git.100credit.cn/profile/preferences,选择一款你认为爽的样式。

    3.1.3 安装git客户端

    此处不做限制,安装git.exe或者sorceTree.exe均可。普通人员(不常用与开发,只是浏览代码)可以不用安装客户端,在线即可浏览、下载、批注文件。

    git.exe下载地址:http://git.100credit.cn/application/entry-guidance/blob/master/Git-1.9.5-preview20150319.exe
    TortoiseGit: https://tortoisegit.org/download/

    安装方法:双击。

    3.2 项目使用

    3.2.1 新建项目

    3.2.2 初始化项目(git init)

    正如上图显示的,gitlab会给我们相应的命令供我们使用(需要安装客户端)。初始化一个项目可以是一个新建的空项目,也可以是一个已经存在的文件夹或者项目,当然也可以从其他(github,其他公司的gitlab)上导入。本文主要讲将已有的svn项目导入到gitlab。

    将一个已有的项目或者文件夹托管到git的流程

    方法一(非命令)

    • 1、新建项目,如上图3.2.1,在gitlab服务端建相应的项目。
    • 2、添加.gitignore、README.md文件
    • 3、在文件夹下,右击鼠标,git init here,初始化工作空间
    • 4、继续右击鼠标,git add all files now ,加入到索引(暂存区)
    • 5、继续右击鼠标,git commit ,填写提交说明
    • 6、继续右击鼠标,git gui——>远端(remote)——>填写远程项目路径
    • 7、继续右击鼠标,右下角上传。

    方法二(命令行)

    1. 新建项目,如上图3.2.1,在gitlab服务端建相应的项目。
    2. 添加.gitignore、README.md文件
    3. 在文件夹下,右击鼠标,git bash
    4. 复制gitlab上的命令到gitbash命令窗口,回车
    5. 大功告成。

    大家根据自己的喜好选择合适的方式。此处给出用命令的操作demo。

     
    3.2.3 从gitlab下载代码

    笔者喜欢idea,此文仅以idea为例,其他开发工具请自行学习使用。此文没有用命令来演示主要是怕不喜欢敲命令的同学产生敌意。其实熟悉的同学可以用命令来操作git的整个流程。想学习命令的同学可以参考:http://www.runoob.com/git/git-basic-operations.html

    3.2.3.1 下载zip、gz、gz、tar格式的代码包

    闲话少说,直接上图

     
    3.2.3.2 用开发工具下载源码

    闲话少说,直接上图

     
    3.2.4 新建分支开发代码

    为什么要新建分支?因为master被强制保护起来了,也就是说要想合并代码到master,必须让有master权限的人帮你审核代码,然后才能合并到master

     
    3.2.5 提交代码

    本地提交(commit)与服务器提交(push)

     
    3.2.6 发送代码合并请求

    上面操作完成后你的代码终于提交到gitlab服务器了,被人也可以看到你的代码了。但是,你的代码在临时分支,并没有合并到master分支。刚才push自己给自己检查代码,显然知识掩人耳目(呵呵哒,大家心知肚明),这时需要发起请求让你的组长或者同组的其他人员帮你检查代码。闲话少说,图归正传。

     
    3.2.7 打tag

    每次上线后,我们需要为这次上线的版本打上标记tag,以便于备份使用。

     
    3.2.8 其他功能

    常用的几个地方,稍微提一下。有图有真相。

     
    4、Git常用操作命令

    4.1 远程仓库相关命令

    检出仓库:$ git clone git://github.com/jquery/jquery.git
    查看远程仓库:$ git remote -v
    添加远程仓库:$ git remote add [name] [url]
    删除远程仓库:$ git remote rm [name]
    修改远程仓库:$ git remote set-url --push [name] [newUrl]
    拉取远程仓库:$ git pull [remoteName] [localBranchName]
    推送远程仓库:$ git push [remoteName] [localBranchName]
    

    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下 :

    $git push origin test:master         // 提交本地test分支作为远程的master分支
    $git push origin test:test              // 提交本地test分支作为远程的test分支
    

    4.2 分支(branch)操作相关命令

    
    查看本地分支:$ git branch
    查看远程分支:$ git branch -r
    创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
    切换分支:$ git checkout [name]
    创建新分支并立即切换到新分支:$ git checkout -b [name]
    删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
    合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
    创建远程分支(本地分支push到远程):$ git push origin [name]
    删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name] 
    

    创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)**

    $git symbolic-ref HEAD refs/heads/[name]
    $rm .git/index
    $git clean -fdx
    

    4.3 版本(tag)操作相关命令

    
    查看版本:$ git tag
    创建版本:$ git tag [name]
    删除版本:$ git tag -d [name]
    查看远程版本:$ git tag -r
    创建远程版本(本地版本push到远程):$ git push origin [name]
    删除远程版本:$ git push origin :refs/tags/[name]
    合并远程仓库的tag到本地:$ git pull origin --tags
    上传本地tag到远程仓库:$ git push origin --tags
    创建带注释的tag:$ git tag -a [name] -m 'yourMessage'
    

    4.4 子模块(submodule)相关操作命令

    
    添加子模块:$ git submodule add [url] [path]
       如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
    初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行
    更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
    删除子模块:(分4步走哦)
     1) $ git rm --cached [path]
     2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
     3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉
     4) 手动删除子模块残留的目录
    

    4.5 忽略一些文件、文件夹不提交

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如下:

    
    # Maven
    target/
    ../target
    target/*
    *.class
    *.ser
    *.ec
    
    # IntelliJ Idea
    .idea/
    out/
    *.ipr
    *.iws
    *.iml
    
    # Eclipse
    .classpath
    .project
    .settings/
    .metadata/
    
    # OS X
    .DS_Store
    

    4.6Git常用命令汇总

    
    git branch 查看本地所有分支
    git status 查看当前状态 
    git commit 提交 
    git branch -a 查看所有的分支
    git branch -r 查看本地所有分支
    git commit -am "init" 提交并且加注释 
    git remote add origin git@192.168.1.119:ndshow
    git push origin master 将文件给推到服务器上 
    git remote show origin 显示远程库origin里的资源 
    git push origin master:develop
    git push origin master:hb-dev 将本地库与服务器上的库进行关联 
    git checkout --track origin/dev 切换到远程dev分支
    git branch -D master develop 删除本地库develop
    git checkout -b dev 建立一个新的本地分支dev
    git merge origin/dev 将分支dev与当前分支进行合并
    git checkout dev 切换到本地dev分支
    git remote show 查看远程库
    git add .
    git rm 文件名(包括路径) 从git中删除指定文件
    git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
    git config --list 看所有用户
    git ls-files 看已经被提交的
    git rm [file name] 删除一个文件
    git commit -a 提交当前repos的所有的改变
    git add [file name] 添加一个文件到git index
    git commit -v 当你用-v参数的时候可以看commit的差异
    git commit -m "This is the message describing the commit" 添加commit信息
    git commit -a -a是代表add,把所有的change加到git index里然后再commit
    git commit -a -v 一般提交命令
    git log 看你commit的日志
    git diff 查看尚未暂存的更新
    git rm a.a 移除文件(从暂存区和工作区中删除)
    git rm --cached a.a 移除文件(只从暂存区中删除)
    git commit -m "remove" 移除文件(从Git中删除)
    git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
    git diff --cached 或 $ git diff --staged 查看尚未提交的更新
    git stash push 将文件给push到一个临时空间中
    git stash pop 将文件从临时空间pop下来
    
    
    git remote add origin git@github.com:username/Hello-World.git
    git push origin master 将本地项目给提交到服务器中
    
    git pull 本地与服务器端同步
    
    
    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
    git push origin serverfix:awesomebranch
    
    git fetch 相当于是从远程获取最新版本到本地,不会自动merge
    git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
    git branch branch_0.1 master 从主分支master创建branch_0.1分支
    git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
    git checkout branch_1.0/master 切换到branch_1.0/master分支
    du -hs
    
    -------------------举个栗子-----------------------
    mkdir WebApp
    cd WebApp
    git init
    touch .gitignore
    git add .gitignore
    touch README
    git add README
    git commit -m 'first commit'
    git remote add origin git@git.100credit.cn:application/test.git
    git push -u origin master
    

    4.7 GIt命令记忆图

     

     

     

    展开全文
  • gitlab搭建与基本使用

    万次阅读 2019-11-05 10:53:48
    一、git、github、gitlab的区别Git是版本控制系统,Github是在线的基于Git的代码托管服务。GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有...

    另外可参考:https://blog.51cto.com/caiyuanji/2114796?cid=707746

    一、 安装并配置必要的依赖关系

    在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。

    1.安装ssh

    sudo yum install -y curl policycoreutils-pythonopenssh-server

     

    若出现以下图片的信息则表示成功

     

     

    2.将SSH服务设置成开机自启动,安装命令:sudo systemctl enable sshd  

    3.启动SSH服务,安装命令:sudo systemctl start sshd

     

     

    4。安装防火墙(如果已经安装了防火墙并且已经在运行状态,则可直接进行第6步)

    yum install firewalld systemd -y

    若出现“完毕!”的字样,则表示安装成功

     

    5.开启防火墙,安装命令:service firewalld  start

     

     

    6.添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。

    sudo firewall-cmd --permanent --add-service=http

     

    7.重启防火墙,安装命令:sudo systemctl reload firewalld

     

    8.接下来,安装Postfix以发送通知邮件,安装命令:sudo yum install postfix

    9.将postfix服务设置成开机自启动,安装命令:sudo systemctl enable postfix

    10.启动postfix,安装命令:sudo systemctl start postfix

     

     

    在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。

     

     

    11.wget 用于从外网上下载插件

    检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装

     

    若wget未安装则进行安装,安装命令:yum -y install wget

     

     

    12.安装vim编辑器  安装命令:yum install vim -y

     

    二、添加GitLab镜像源并安装gitlab服务器

     

    1.添加gitlab镜像

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

     

    2.安装gitlab 安装命令:rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

    安装过程需要些时间,如果出现下图,则说明安装成功。

     

    4.修改gitlab配置文件指定服务器ip和自定义端口:

     

    vim  /etc/gitlab/gitlab.rb

     

    进入编辑器后按“i”键进入编辑状态,ESC键退出编辑状态

    退出并保存,命令输入“:wq”

    ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

     

    5.重置并启动GitLab

     

     

     

    执行:

     

    gitlab-ctl reconfigure

     

    gitlab-ctl restart

     

    提示  "ok: run:"表示启动成功

     

    6.访问 GitLab页面

    如果没有域名,直接输入服务器ip和指定端口进行访问

    初始账户: root 密码:5iveL!fe

    第一次登录修改密码

     

     

     

     

    安装过程遇见的那些坑

    一、在CentOS里面安装软件,提示软件已安装,但是rpm -q和-e都是提示包没有安装

     

       查看与rpm包相关的文件和其他信息   rpm -qa | grep 包名

    查询包是否被安装,命令:rpm -q 包名

    删除软件包,命令:rpm -e 包名

     

    运行以上三步,把原来的包删除掉重新下载和安装

    展开全文
  • gitlab介绍及使用

    万次阅读 2019-05-23 18:03:02
    一、gitlab介绍 前边介绍过CentOS7下Gitlab的安装,下边就要说说Gitlab的使用 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员...

    一、gitlab介绍

    前边介绍过CentOS7下Gitlab的安装,下边就要说说Gitlab的使用

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby写成。后来,一些部分用Go语言重写,现今并在国内外大中型互联网公司广泛使用。

    git、gitlab、GitHub的简单区别

    git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面

    gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发

    github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库

    二、gitlab相关命令

    gitlab-ctl start #启动全部服务
    gitlab-ctl restart#重启全部服务
    gitlab-ctl stop #停止全部服务
    gitlab-ctl restart nginx #重启单个服务,如重启nginx
    gitlab-ctl status #查看服务状态
    gitlab-ctl reconfigure #使配置文件生效
    gitlab-ctl show-config #验证配置文件
    gitlab-ctl uninstall #删除gitlab(保留数据)
    gitlab-ctl cleanse #删除所有数据,从新开始
    gitlab-ctl tail <service name>查看服务的日志
    gitlab-ctl tail nginx  #如查看gitlab下nginx日志
    gitlab-rails console  #进入控制台
    

    三、gitlab常用组件

    nginx:静态Web服务器

    gitlab-shell:用于处理Git命令和修改authorized keys列表,gitlab是以Git为底层的,操作实际上最后就是调用gitlab-shell命令进行处理。

    gitlab-workhorse:轻量级的反向代理服务器

    logrotate:日志文件管理工具

    postgresql:数据库

    redis:缓存数据库

    sidekiq:用于在后台执行队列任务(异步执行)

    unicorn:GitLab Rails应用是托管在这个服务器上面的

    查看服务状态:gitlab-ctl status,可以看到gitlab的依赖组件

    四、gitlab安装目录

    以下是gitlab常用的默认安装目录

    gitlab组件日志路径:/var/log/gitlab

    gitlab配置路径:/etc/gitlab/  路径下有gitlab.rb配置文件

    应用代码和组件依赖程序:/opt/gitlab

    各个组件存储路径: /var/opt/gitlab/

    仓库默认存储路径   /var/opt/gitlab/git-data/repositories

    版本文件备份路径:/var/opt/gitlab/backups/

    nginx安装路径:/var/opt/gitlab/nginx/

    redis安装路径:/var/opt/gitlab/redis

    五、配置GitLab中的SSH key

    1、查看是否已有SSH key

    (1)桌面右键点击弹出,点击Git Bash进入命令行界面

    (2)cat ~/.ssh/id_rsa.pub查看SSH秘钥是否存在,可以看到初次没有生成过


    (3)生成过删除,重新生成,找到C:\Users\admin\.ssh,admin是当前用户名,删除以下文件

    2、生成SSH 密钥 

    ssh-keygen -t rsa -C "liyang@ultrapower.com.cn"

    如下图,一路回车即可生成,会在C:\Users\admin\.ssh下生成基于rsa的公钥与私钥对

    3、 添加SSH key到gitlab

    1)查看公钥并复制

    cat ~/.ssh/id_rsa.pub    #查看公钥,自己手动复制
    cat ~/.ssh/id_rsa.pub | clip #或者直接复制到剪贴板

    (2)登录gitlab,最右边下拉,点击“Settings”去User Setting页面

    (3)点击左边的SSH Keys去添加

    (4)把刚才复制的SSH Keys粘贴进去,点击Add key,添加即可

    (5)添加成功如下,点击remove可以移除

    (6)ssh -T git@"gitlab服务器地址",测试是否配置成功,成功如下

    六、备份与恢复

    可参看https://docs.gitlab.com/omnibus/settings/backups.html#creating-an-application-backup

    1、备份应用

    默认备份路径:/var/opt/gitlab/backups,备份格式:EPOCH_YYYY_MM_DD_GitLab_version_gitlab_backup.tar
    如备份文件:1542603058_2018_11_19_11.4-ce_gitlab_backup.tar

    需要git用户权限 

    sudo chown git.git /var/opt/gitlab/backups/1542603058_2018_11_19_11.4-ce_gitlab_backup.tar

    如果自定义备份路径,编辑/etc/gitlab/gitlab.rb,指定备份路径,完后执行gitlab-ctl reconfigure重新加载配置

    gitlab_rails['backup_path'] = '/mnt/backups' 备份路径,自己指定
    gitlab_rails['backup_keep_time'] = 604800  #每次备份保留时间,默认7天,可以省略

    手动备份,生成 一次备份

    sudo gitlab-rake gitlab:backup:create

     定时备份:cron -e添加定时,保存,重启定时服务/etc/init.d/crond restart

    #周二到周六每天凌晨2点备份
    0 0 2 ? * 2-6 gitlab-rake gitlab:backup:create

     

    2、备份配置

    gitlab配置默认在etc/gitlab,需要备份gitlab.rb和gitlab-secrets.json,为了方便,备份etc/gitlab文件夹即可

    sudo crontab -e -u root  添加定时,保存,重启定时服务/etc/init.d/crond restart

    #周二到周六每天凌晨2点备份,设置权限0077,压缩/etc/gitlab到/secret/gitlab/backups下,备份路径自定义
    0 0 2 ? * 2-6  umask 0077; tar cfz /secret/gitlab/backups/$(date "+etc-gitlab-\%s.tgz") -C / etc/gitlab

    3、恢复

    可参看https://docs.gitlab.com/ce/raketasks/backup_restore.html#restore-for-omnibus-installations

     停止与连接 数据库有关的进程

    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    # Verify是否停止
    sudo gitlab-ctl status

      backup后边指定恢复的时间戳、版本

    # This command will overwrite the contents of your GitLab database!
    sudo gitlab-rake gitlab:backup:restore BACKUP=1542603058_2018_11_19_11.4-ce

     如果有必要恢复配置,gitlab.rb和gitlab-secrets.json,把备份的tar包恢复到/etc/gitlab路径下即可

     重启并检查服务

    sudo gitlab-ctl restart  #重启服务
    sudo gitlab-rake gitlab:check SANITIZE=true #检查恢复情况

    七、gitlab-ci可持续集成

    1、gitlab-ci简述

    gitlab-ci全称gitlab continuous integration,就是可持续集成的意思。从gitlab8.0版本开始,GitLab-ci完全集成到GitLab本身中,并且默认情况下在所有项目上都启用,不用可以禁用掉(禁用见2共享runner中)。

    若将gitlab-ci.yml文件添加到仓库的根目录,并将项目配置gitlab Runner使用,则每次commit或push都会触发CI pipeline。gitlab-ci.yml文件告诉GitLab runner怎么做。默认情况下,它运行一个pipeline ,有三个stage:buildtest,  deploy。没必要三stage都使用,没有用到的stage可以被忽略。

    2、GitLab-Runner类型介绍

    详情可参考https://docs.gitlab.com.cn/ee/ci/runners/README.html

    runner有三种类型:Shared, specific and group Runners

     (1)共享runner:Shared runner适用于多个相似项目,其思想是:与其为每个项目分配一个特定runner,大部分时候这些runner事空闲的,即每个项目的runner一般不会同同时工作,不如让单个或少数Shared runner处理多个项目。shared runner使用公平队列处理作业,与使用FIFO的特定runner相比,可以防止项目创建数百个作业,占用所有可用shared runner的资源。

    从GitLab 8.2开始,默认启用shared runners,无需手动开启,但是也可以在每个gitlab项目下的Settings ➔ CI/CD页面,通过“Disable shared Runners”按钮禁用。拥有管理员权限的用户可以注册且只能注册一个shared runner实例。

    (2)特定runner:specific runner适用于特定要求的作业或者有特殊需求的项目。如果一个作业具有某些特定要求,您可以在中心设置特定的Runner,而不是所有Runner都如此。例如,如果你要部署某个特定项目,可以去Settings ➔ CI/CD页面获得令牌(上图中画红线处)为该项目设置一个specific runner。specific runner使用FIFO队列处理作业。

    (3)组runner:group Runners适用于一组中有多个项目并且希望组内所有项目都访问一组Runner的情况。group Runners使用FIFO队列处理作业。可以去Settings ➔ CI/CD页面,点击Group CI/CD setting(即上图中右下角蓝字),进入下页,获取token

    3、安装GitLab-Runner

    详情可参考https://docs.gitlab.com/runner/install/

    方式一

    1、添加GitLab官方yum源

    # For RHEL/CentOS/Fedora
     curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
    

     2、安装最新版本runner

     # For RHEL/CentOS/Fedora,yum默认安装最新版本
     sudo yum install gitlab-runner
    或者
    # for RPM based systems #RPM安装指定版本,列出所有包含重复的版本,降序显示
     yum list gitlab-runner --showduplicates | sort -r
    #如安装10.0.0-1
    sudo yum install gitlab-runner-10.0.0-1
    

    方式二

    (1)下载

    sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

    (2)添加可执行权限

     sudo chmod +x /usr/local/bin/gitlab-runner

    (3)创建GitLab CI 用户

     sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

     (4)安装gitlab-runner服务

     #安装到/home/gitlab-runner下
     sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

    4、runner注册到CI

    详情可参考https://docs.gitlab.com/runner/register/index.html

    1. runner注册命令:

       sudo gitlab-runner register
      
    2. 键入GitLab的URL:

       Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
       https://192.168.1.74:8080 #gitlab地址
      
    3. 键入Runner注册的token:

       Please enter the gitlab-ci token for this runner
       xxx    #进入runner的token凭证
      
    4. 键入Runner的描述, 之后也可以GitLab’s 可视化界面中更改

       Please enter the gitlab-ci description for this runner
       [hostame] my-runner   #runner的描述
      
    5. 键入Runner的标签, 之后也可以GitLab’s 可视化界面中更改

       Please enter the gitlab-ci tags for this runner (comma separated):
       my-tag    #runner标签,相当于名字,用于指定哪个runner运行作业
      
    6. 键入执行Runner executor的方式

       Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
       shell   #选择执行runner的executor方式,这里没有使用docker等其他的,选shell
      

    5、配置gitlab-ci.yml

    详情可以参考https://docs.gitlab.com.cn/ee/ci/yaml/README.html

    从从GitLab7.12版本,GitLab CI使用YAML文件(.gitlab-ci.yml项目配置),它放在仓库的根目录,定义如何构建项目

    Pipeline:一次 Pipeline 其实相当于一次构建任务,里面可以包含多个流程,如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程

    jobs:Jobs 表示构建工作,表示某个 Stage 里面执行的工作。我们可以在 Stages 里面定义多个 Jobs,这些 Jobs 会有以下特点:相同 Stage 中的 Jobs 会并行执行,相同 Stage 中的 Jobs 都执行成功时,该 Stage 才会成功;如果任何一个 Job 失败,那么该 Stage 失败,即该构建任务 (Pipeline) 失败

    Stages:Stages表示构建阶段,说白了就是上面提到的流程。我们可以在一次 Pipeline 中定义多个 Stages,这些 Stages 会有以下特点:所有 Stages 会按照顺序运行,即当一个 Stage 完成后,下一个 Stage 才会开始;只有当所有 Stages 完成后,该构建任务 (Pipeline) 才会成功;如果任何一个 Stage 失败,那么后面的 Stages 不会执行,该构建任务 (Pipeline) 失败

    # 定义 stages, stages 关键字来定义 Pipeline 中的各个构建阶段
    stages:
      - build
      - test
      - deploy
    # 定义 job,可多个
    job 1:
      stage: build  #stage指定构建阶段
      script: make build dependencies #script是每个job执行的任务
    
    job 2:
      stage: build
      script: make build artifacts
    
    job 3:
      stage: test
      script: make test
    
    job 4:
      stage: deploy
      script: make deploy

    添加gitlab-ci.yml

    去项目根目录下,点击 "Set up CI/CD"去配置gitlab-ci.yml

    如下就可以配置了,配置完提交

    6、启动gitlab-runner

    sudo gitlab-runner start  #启动gitlab-runner

    7、查看pipeline工作状态

    去项目根路径下,点击“CI/CD》Pipelines”查看状态

    如下可以看到pipeline工作状态

     失败后,找到问题后,也可以点击右边的“Run Pipeline” 重新运行

    参考:https://docs.gitlab.com.cn/ee/ssh/README.html

    参考:https://docs.gitlab.com.cn/ee/ci/quick_start/README.html

    参考:https://docs.gitlab.com.cn/ee/ci/README.html

    参考:https://docs.gitlab.com.cn/runner/

    参考:http://www.cnblogs.com/zdqc/p/9666994.html

    展开全文
  • GitLab使用教程(详细)

    万次阅读 多人点赞 2018-06-13 16:59:31
    目录一、基本操作 11.登录:2....新建项目2.编辑或删除项目三、用户管理(管理员使用,非管理员跳过此步骤)1....从组管理添加项目五、权限说明六、Gitlab在eclipse中的使用1.生成SSH key2.发布公钥到服务器...

    目录

    一、基本操作
    1.登录:
    2.修改密码:

    二、项目管理
    1.新建项目
    2.编辑或删除项目

    三、用户管理(管理员使用,非管理员跳过此步骤)
    1.新建用户
    2.编辑和删除用户

    四、组管理(管理员使用,非管理员跳过此步骤)
    1.新建组
    2.编辑或删除组
    3.添加组成员
    4.修改成员的权限(owner用户操作)
    5.从组管理添加项目

    五、权限说明

      一、基本操作

    1.登录:

    在浏览器地址栏输入http://10.6.2.160/ 回车,进入登陆界面。

     

    在上图红框区域登陆自己的账户密码。

    2.修改密码:

    登录成功后点击左侧工具栏目Profile Settings ------ Password -------修改密码-------Save password

    Tips

    点击GitLablogo,可以从任何界面回到本页

     


      

    二、项目管理

    可以根据需要选择新建项目、新建组合新建用户

    1.新建项目

    如下图所示新建项目:

     

    创建时可以选择在自己用户下创建或者某个群组内创建

     

     

    a项目名称,项目名称可以为字母、数字、空格、下划线、中划线和英文点号组

    成,且必须以字母或数字开头,不能使用中文

    b项目描述

    c.可见性(库类别)

    私有库:只有被赋予权限的用户可见

    内部库:登录用户可以下载

    公开库:所有人可以下载

     

    根据实际情况填写完各项之后,点击创建项目,项目创建成功

     

    提示通过SSH方式拉取推送项目代码必须要导入SSH key,这个稍后再介绍。

    项目地址有HTTPSSH两种方式-------可发送给开发人员下载和初始化项目

    2.编辑或删除项目

     


    主页左边菜单栏--------Project


    右上角的齿轮状按钮--------编辑项目

     

    右下角删除项目。

     

    或者点击Admin Area

     

     

     

    三、用户管理(管理员使用,非管理员跳过此步骤

    1.新建用户

    点击顶端的Admin Area按钮


     可以进入管理页面

     

    1) 姓名(可以是中文)

    2) 用户名(可以为字母、数字、空格、下划线、中划线和英文点号组成,且必须以字母或数字开头,不能使用中文

    3) 邮箱地址(首次接收密码)

    4) 建项目的数量限制

    5) 是否可以创建组

    6) 是否是管理员

    7) 选填内容(个人联系方式)

    2.编辑和删除用户

     

     

    四、组管理(管理员使用,非管理员跳过此步骤

    1.新建组

    菜单栏Group------New Group

     


     

    1). 组名称,组名称可以为字母、数字、空格、下划线、中划线和英文点号组成,

    且必须以字母或数字开头,不能使用中文

    2). 组详情

     

    2.编辑或删除组

     


    在此页面可以编辑和删除组

     

    3.添加组成员

     


     

    添加组用户并赋予相应的权限。


     

    4.修改成员的权限(owner用户操作)

    点击左侧的Groups,然后点击当然的组。

     


    然后点击左侧Members菜单进入。



     

    修改想要修改的用户的权限并save


     

    5.从组管理添加项目

    从组里添加项目可免去再添加项目用户的步骤,因此我们选择从组内添加工程。

    点击左侧Group,然后点击齿轮按钮。

     

     然后点击Project,接着点New Project 


     

    按步骤填写最后点击Create Project创建项目。

    此时组内成员都能看到这个项目已经被创建。

    五、权限说明

    Guest(匿名用户) - 创建项目、写留言薄

    Reporter(报告人)创建项目、写留言薄、拉项目、下载项目、创建代码片

    Developer(开发者)创建项目、写留言薄、拉项目、下载项目、创建代码

    片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

     、创建标签、编写wiki

    Master(管理者)创建项目、写留言薄、拉项目、下载项目、创建代码片

    段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

     、创建标签、编写wiki增加团队成员、推送受保护的分支、移除受保护

    的分支、编辑项目、添加部署密钥、配置项目钩子

    Owner(所有者)创建项目、写留言薄、拉项目、下载项目、创建代码片

    段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

     、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护

    的分支、编辑项目、添加部署密钥、配置项目钩子、开关公有模式、将项目转

    移到另一个名称空间、删除项目

    展开全文
  • pycharm gitlab 图文并茂

    2020-08-26 10:15:22
    本地上传代码到gitlab 选择需要上传的工程目录 文件下右键,选择先 add 再Commit File Commit File需要填写提交信息,然后右键Push到gitlab 4. Push后有一个url需要填写,URL就是你在gitlab新建一个项目的网址...
  • 拉取 ... 【其中,URL 为gitlab工程中-Clone—Clone with SSH/Clone with HTTP之一 Directory为本地的路径,即拉取的工程要存放的路径】 ...---拉取成功后,会提示打开,...---则已将gitlab工程拉取到本地 注: ..
  • GitLab对应项目里创建issue,然后再pycharm中找到任务 创建对应任务的分支并做相应修改,然后提交到GitLabGitLab为上传的分支创建merge requests,可发现此请求与对应的任务有了关联 到此...
  • Pycharm下使用gitlab进行代码管理

    千次阅读 2019-08-05 16:09:24
    1. Pycharm关联Git安装路径 (1)确定自己已经安装git, 并且知晓git安装目录,我这里git安装在D盘目录下。 (2)打开pycharm ----> File ------>...2.pycharm从gitlab上拉取代码 (1) 依次点击下图中...
  • Gitlab Pycharm操作

    2019-09-13 05:16:15
    ###一、Gitlab创建一个项目### 1、创建项目 2、输入项目名称 3、完成项目初始化 ###二、Git与Pycharm结合### 1、配置git仓库 2、提交到gitlab 3、输入commit注释和选择变更的文件 4、推送到git仓库 5、web...
  • GitLab的部署与使用

    千次阅读 2019-06-27 20:28:10
    GitLab GitLab是一个开源的用于仓库管理的项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,大家应该都知道也使用过github这个网站吧,这两个看起来非常的相似,他们有什么区别呢? GitHub: 基于...
  • GitLab使用教程

    万次阅读 多人点赞 2018-03-23 10:36:16
    目录一、基本操作 11.登录:2....新建项目2.编辑或删除项目三、用户管理(管理员使用,非管理员跳过此步骤)1....从组管理添加项目五、权限说明六、Gitlab在eclipse中的使用1.生成SSH key2.发布公钥到服务器...
  • Linux启动/停止/重启gitlab

    万次阅读 2017-08-12 15:35:15
    # Start all GitLab components sudo gitlab-ctl start # Stop all GitLab components sudo gitlab-ctl stop # Restart all GitLab components sudo gitlab-ctl restart
  • 如何查看 GitLab 版本号

    万次阅读 2018-07-18 22:01:22
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  • gitlab 设置 用户名 密码

    万次阅读 2018-09-28 16:28:41
    1. 2.添加用户名 、时间 ,并全部勾选
  • gitlab启动关闭查看状态命令

    万次阅读 2018-10-15 09:30:46
    关闭:gitlab-ctl stop 开启:gitlab-ctl start 查看状态:gitlab-ctl status
  • 配置GitLab域名

    万次阅读 2016-12-20 14:59:25
    配置GitLab域名,否则项目git clone的地址时错 vim /etc/gitlab/gitlab.rb 编辑:external_url '你的网址' 例如:external_url 'http://192.168.1.100' 编辑完成后,再sudo gitlab-ctl reconfigure一下,使配置...
  • Gitlab服务的启动、停止和重启命令

    万次阅读 2019-05-13 11:21:01
    启动:sudo gitlab-ctl start 停止:sudo gitlab-ctl stop 重启:sudo gitlab-ctl restart
  • gitlab目录结构

    千次阅读 2018-08-01 09:57:58
    默认安装的gitlab,主要有四个目录: /opt/gitlab/ ## 主目录 /etc/gitlab/ ## 放置配置文件 /var/opt/gitlab/ ## 各个组件 /var/log/gitlab/ ## 放置日志文件 检查gitlab各组件状态: gitlab-ctl status ...
  • 自建gitlab服务器502错误解决方案 安装gitlab [root@ianly]# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash [root@ianly]# yum install -y gitlab-ce ...
1 2 3 4 5 ... 20
收藏数 54,720
精华内容 21,888
关键字:

gitlab