# gitLab **Repository Path**: lidengpan/git-lab ## Basic Information - **Project Name**: gitLab - **Description**: GitLab私有仓库的入门使用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 3 - **Created**: 2021-03-04 - **Last Updated**: 2023-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitLab私服使用说明v1.0 ## 1-GitLab介绍 ​ GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。 ​ 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等组织使用。 ​ GitLab是整个DevOps生命周期的第一个应用程序。其使用与GitHub类似,并且提供了许多DevOps相关的功能。GitLab提供无与伦比的可见性,更高的效率和全面的治理。这使得软件生命周期加快了200%,从根本上提高了业务速度。 官方网站:https://about.gitlab.com/ ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114151_b09c0e62_1447154.png "1614820518985.png") ## 2-Git,GitHub与GitLab的区别 - Git是一种版本控制系统,是一种工具,用于代码的存储和版本控制。 - GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台,可以帮助程序员之间互相交流和学习。 - GitLab是一个基于Git实现的在线代码仓库软件,你可以用GitLab自己搭建一个类似于GitHub一样的仓库,但是GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。 - GitHub和GiLlab两个都是基于Web的Git远程仓库,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。 ## 3-GitLab私服安装 前提: ​ 使用docker-compose.yml脚本的方式安装gitlab,所以要确保服务器上已经安装好了docker及docker-compose环境 第一步,在服务器上根目录下创建一个gitlab文件夹 ```sh mkdir gitlab ``` 第二步,进入gitlab文件夹中,并创建docker-compose.yml文件 ```sh cd gitlab ``` 编写docker-compose.yml文件内容 ```yml version: '3' services: gitlab: image: 'twang2218/gitlab-ce-zh:11.1.4' container_name: "gitlab" restart: unless-stopped privileged: true hostname: 'gitlab' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: external_url 'http://192.168.200.133' gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '80:80' - '443:443' - '2224:22' volumes: - /opt/gitlab/config:/etc/gitlab - /opt/gitlab/data:/var/opt/gitlab - /opt/gitlab/logs:/var/log/gitlab ``` > external_url 是我们要访问的gitlab的地址,端口号是80, > > gitlab_rails['gitlab_shell_ssh_port'] 对应的端口号2224 是ssh连接的端口号 第三步,创建相关目录 ```sh #批量创建目录 mkdir /opt/gitlab/{config,data,logs} -p #查看创建的目录 ls -l /opt/gitlab/ 总用量 8 drwxrwxr-x. 3 root root 239 2月 28 17:03 config drwxr-xr-x. 20 root root 4096 2月 28 17:05 data drwxr-xr-x. 20 chrony root 4096 2月 28 17:05 logs ``` 第四步,在gitlab目录下执行docker-compose命令去生成和启动gitlab容器 ```sh cd gitlab/ docker-compose up -d ``` 第五步,查看docker容器 ```sh docker ps ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114248_48cabb14_1447154.png "1614821485431.png") 第六步,gitlab管理界面 地址:[http://129.204.133.242](http://129.204.133.242/) 账号:root 密码:首次登陆设置 修改密码:123456789 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114300_c2277994_1447154.png "1614821626809.png") 登录操作: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114323_c751b1e9_1447154.png "1614821645929.png") 登录之后进入gitlab主页面: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114334_a16eecd6_1447154.png "1614821684824.png") ## 4-GitLab私服的使用 ### 4-1-创建组及组权限配置 ​ 在GitLab组相当于团队,在项目开发过程中,每个组有不同的组员和对应的不同的子项目,对项目组用户开放项目的访问。 ​ 在GitLab首页选择**Create a Group**,进入创建页面,输入群组名称,群组URL,群组描述,同时还需选择可见性级别,其相当于设置组权限。 在可见性级别中包含三种: - 私有:群组及其项目只能由成员查看 - 内部:任何登录的用户都可以查看该群组和任何内部项目 - 公开:不进行身份验证,可以随意查看。 第一步,点击主页上创建一个群组 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114346_ddcd8ea3_1447154.png "1614822162301.png") 第二步,填写群组信息 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114355_0d402423_1447154.png "1614822385232.png") 第三步,创建群组 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114408_edecb623_1447154.png "1614822421733.png") ### 4-2-创建用户及用户权限配置 #### 创建用户 组有了之后,还需要向组内添加项目组成员。 第一步,点击设置,选择用户菜单 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114439_ca4e37c8_1447154.png "1614822666493.png") 第二步,点击用户,目前显示只有管理员自己 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114452_85e72041_1447154.png "1614822716915.png") 第三步,新建用户,会进入到添加用户页面,需要输入Name、Username、和Email。最后点击create user即可。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114527_661e009d_1447154.png "1614822877222.png") 第四步,接着以管理员身份,重新进入到成员列表页面,此时已经可以看到新增了一个 **李四**用户。接着点击 **编辑**,设置该用户的登录密码。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114538_51403d67_1447154.png "1614822994151.png") 密码修改为:12345678 #### 用户进组,及用户权限指定 现在有了组和用户后,可以将指定用户添加到组中。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114555_ab90cf25_1447154.png "1614823433918.png") 当进入到组的详情页面中之后,即可将指定用户添加到组中。首先需要先确定当前被操作的用户。接着需要指定当前用户的身份权限。 身份对应权限,总共有五个选项,分别为: - 访客:可以创建issue、发表评论,不能读写版本库 - 报告者:可以克隆代码,不能提交,QA、PM可以赋予这个权限 - 开发人员:以克隆代码、开发、提交、push,RD可以赋予这个权限 - 主程序员:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限 - 所有者:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限 可以根据实际人员情况,进行人员角色权限分配。此处选择 **开发人员** ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114629_764859ad_1447154.png "1614823678212.png") 增加用户到群组中 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114640_037930e8_1447154.png "1614823795875.png") ### 4-3-创建项目 GitLab核心作用是作为代码仓库,因为它可以像GitHub一样进行代码托管。首先需要创建好项目,然后把项目指派该开发组。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114840_9ac7b566_1447154.png "1614824261453.png") 当进入到新建项目页面,GitLab提供了三种创建方式:空白项目、从模板创建、导入项目。此处使用 **空白项目** 。对于权限仍然是三个,与组权限相同。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114914_291d7719_1447154.png "1614824425791.png") 当创建成功,即可进入到项目页面。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114925_b7f1e362_1447154.png "1614824457263.png") 并且此时,进入到项目组详情页面,可以看到该项目组已经关联了一个项目 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114934_1ba3e6da_1447154.png "1614824931792.png") ## 5-IDEA集成GitLab ### 5-1-idea集成Git配置 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114944_d73693b1_1447154.png "1614826793800.png") ### 5-2-提交代码到GitLab私服仓库中 #### 初始化本地仓库 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/114955_3aa4565a_1447154.png "1614828256712.png") #### 添加项目到本地暂存区 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/115004_260b57cd_1447154.png "1614828326579.png") #### push代码到远程仓库 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/115018_816050a9_1447154.png "1614828468280.png") 点击commit Directory ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/115029_eb4f3382_1447154.png "1614828516670.png") 点击commit&push ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/115040_b6a40d9c_1447154.png "1614828664560.png") ==注意:第一次的话,需要提示书写GitLab的登录用户名和密码== #### 查看GitLab仓库中的代码片段 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0304/115050_dc43f3cf_1447154.png "1614828758444.png")