一、安装GitLab

详情请查看这里:超级详细的 Docker Desktop 安装 GitLab

二、创建组

1、使用root管理员权限来创建组,一个组里面包含多个项目分支,可以将用户来添加到组里进行设置权限,不同的组有不同的权限。

在这里插入图片描述

2、输入群组名称、描述、和可见性级别,点击创建群组

在这里插入图片描述

三、创建用户

1、普通用户只能访问属于自己的组的项目,管理员可以访问所有组的项目

在这里插入图片描述

2、输入用户名称和电子邮件,权限设置选择普通用户或者管理员权限

在这里插入图片描述

3、再次点击编辑修改密码

在这里插入图片描述

4、输入密码

在这里插入图片描述

5、将用户添加到组中

在这里插入图片描述

6、添加完之后对权限进行设置,5种权限

在这里插入图片描述

  • Guest:可以创建issue、发表评论,不能读写版本库
  • Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
  • Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
  • Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
  • Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限

四、项目创建 及 GitLab 操作

1、以刚才创建的用户来登陆GitLab进行项目创建

第一次登陆新用户提示需要更改密码,使用之前的密码也可以

在这里插入图片描述

2、点击Create a project来创建新项目

在这里插入图片描述

3、以自己的组来创建项目

在这里插入图片描述

权限分为私有、内部和公开三种可见性级别

  • 私有(Private):项目访问必须明确授予每个用户。 如果此项目是在一个群组中,群- 组成员将会获得访问权限。
  • 内部:该项目允许所有已登录到当前GitLab服务器的用户访问。
  • 公开(Public):该项目允许任何人访问。

4、创建完之后就可以看到如下界面了

在这里插入图片描述

5、现在在这个组里去创建项目。

在这里插入图片描述

6、选择项目属于的组,因为组是私有的,所以项目也是私有的。

在这里插入图片描述

7、将代码导入项目

项目已经创建好了,要将本地代码提交上去。

Create a new repository:创建了空的库,然后才开始在库里面进行开发,然后提交上去就行了 Push an
existing folder:创建完库,代码已经有了,直接提交上去

下载代码库,并在代码库中创建文件提交。

在这里插入图片描述

8、创建一个分支

在这里插入图片描述
在这里插入图片描述

9、主干/特性开发

主干开发,一切都是master分支,不管后面来了多少个特性,提交代码都是提交到主干分支上面。

在这里插入图片描述

特性分支开发:来了一些需求,这就需要基于master分支创建feature特性分支。这些新的需求代码都在特性分支,特性分支开发完了,将代码提交上去了,然后触发流水线,这些流水线就是来验证特性分支的,验证没有问题,那么特性分支就需要做另外的操作,就需要将代码合并到master分支了,然后发版了。

在这里插入图片描述

在这里插入图片描述

特性分支开发

  1. 基于master主干分支创建版本分支(release-1.1.1)
  2. 基于master分支创建特性分支(feature-1, feature-2…)
  3. 特性分支开发完成后,将特性分支合并到版本分支
  4. 基于版本分支进行发布(dev环境,本地验证,UAT,预生产,生产) 发生产了也没问题,那么将版本分支合并到主干分支
  5. 基于master主干分支创建一个标签tag

10、拉取特性分支

为什么要拉取分支? 一个分支不够吗? 一般我们使用 master 主干分支存放最新的能够发布生产的代码,而单独创建一些特性分支来做项目需求任务的开发分支。
这样的好处是防止主干分支污染,对分支起到了保护的作用。

下面进入 demo-hello-service 项目主页,然后基于主干分支master,创建特性分支feature-1-DEV。操作如下:

在这里插入图片描述

在这里插入图片描述

11、特性分支开发与提交

12、特性分支合并操作

将特性分支 feature-1-DEV 代码合并到主干分支master Merge Request。

在这里插入图片描述
在这个页面,选择源分支和目标分支。

在这里插入图片描述
在这里插入图片描述

在这个页面:

  1. 指定合并请求的标题
  2. 描述信息,一般都是变更信息
  3. 指定主管进行审核(最终该用户决定是否合并)
  4. 指定进行代码审查的同事
  5. 合并成功后删除源分支(最后很定要删除源分支,可以先保留一个版本后再删除,此处最好取消勾选)

在这里插入图片描述
提交合并后,由管理员审查进行合并。
在这里插入图片描述

在这里插入图片描述

到此一个基本的项目开发提交代码过程就已经完成了。(多熟悉一下这个过程)

五、将现有的GitLab项目移至新的子组 | 项目中

您可以在左侧边栏中的Settings-> General->下执行此操作Transfer project。但是,您将需要对要转移到的那个组的管理权限。

注意: 这里需要注意的是项目移只有 Owner 才有权限操作
GitLab 操作权限:

  • 1.Guest:可以创建issue、发表评论,不能读写版本库
  • 2.Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
  • 3.Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
  • 4.Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
  • 5.Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

六、GitLab项目的submodule操作

子模块( submodule )是一个内嵌在 git 仓库(父工程)中的 git
仓库,有点儿拗口。通过子模块,可以将外部的仓库作为子目录放到自己的仓库中,既能方便的管理依赖,又可以保持依赖本身的独立性。

子模块将被记录在一个名叫 .gitmodules 的文件中,其中会记录子模块的相关信息

[submodule "module_name"]      # 子模块的名称
path = file_path               # 子模块在本仓库中文件的存储路径
url = repo_url                 # 子模块的远程仓库地址

1、新建项目

在这里插入图片描述
在这里插入图片描述

2、然后,将上面创建好的项目克隆到本地

git clone https://github.com/xugaoxiang/gitDemo.git

在这里插入图片描述
在这里插入图片描述

3、添加子模块

git submodule add https://github.com/ultralytics/yolov5.git

在这里插入图片描述

在这里插入图片描述
这时候的目录结构是这样的

在这里插入图片描述

4、通过 git status 查看当前状态

在这里插入图片描述

可以项目目录下多了个文件 .gitmodules , 这个文件是用来保存子模块的信息,子模块是 Revamp_Cuhk

5、通过 git submodule 查看子模块

git submodule

在这里插入图片描述

可以看到添加到 revamp 项目中的 子项目 提交版本号

6、将子模块提交到 revamp

 git add
 git commit -m "add drpo gitmodules"
 git push origin main

在这里插入图片描述
然后就可以开始推送了,完成后,就可以看到了 revamp 下的 子模块了

在这里插入图片描述

7、克隆带有子模块的工程

克隆项目后,子模块目录默认是空的,需要我们在项目根目录下执行如下命令完成子模块的下载

git submodule init
git submodule update
或者
git submodule update --init --recursive

上面的方法,步骤繁多,比较麻烦,不推荐。可以直接在克隆的时候一起下载子模块,一气呵成,命令如下

git clone https://github.com/xugaoxiang/gitDemo.git --recursive

在这里插入图片描述
在这里插入图片描述

8、更新子模块

一般来说,子模块是不断在维护更新的,在我们自己的项目里,一般不会去改动子模块。但是如果想保持本地子项目与远程仓库版本一致,就需要去更新子模块至远程仓库的最新版

git submodule update --remote

需要注意的是,命令 git submodule update 是更新项目内子模块到最新版本

9、删除子模块

如果不再依赖子模块了,就可以将其删除了,步骤如下

git rm yolov5

然后修改 .gitmodules 将其中跟子模块相关的删除,如果是最后一个子模块的话,可以直接删除文件 .gitmodules

在这里插入图片描述
接着修改 .git/config,同样将对应子模块的信息删除

在这里插入图片描述
接下来,删除 .git 文件夹中的相关子模块文件,如这里的 yolov5

最后就可以git commit 和 git push 了

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐