Git - GitLab



GitLab 是一个开源的 Git 服务器。与 GitWeb 不同,它是一个更复杂的解决方案,需要用于处理和管理 Git 仓库。

  • 在所有 Git 服务器中,GitLab 是一款备受青睐的解决方案,它拥有丰富的功能,超越了 GitWeb 的功能。

  • GitLab 提供了一套完整的工具来管理 Git 仓库,尽管它比 GitWeb 更复杂,安装和管理也更复杂。

安装

由于 GitLab 是一个依赖于数据库的在线应用程序,因此它的安装比某些其他 Git 服务器更复杂。

但是,此过程有大量的文档和支持。

GitLab 建议使用官方的 Omnibus GitLab 包,因为它通过将所有必需的部分和依赖项组合到一个包中,从而简化了设置。

GitLab 的其他安装选项包括

  • GitLab Helm chart:专为在 Kubernetes 上部署而设计。

  • Dockerized GitLab 包:适用于 Docker 容器。

  • 从源文件:允许从 GitLab 的源代码进行自定义安装。

  • 云提供商:可在 AWS、Google Cloud Platform、Azure、OpenShift 和 DigitalOcean 等平台上使用。

管理

GitLab 使用其在线界面进行管理。

  • 首先启动 Web 浏览器并输入我们的 GitLab 服务器的 IP 地址或主机名。

  • 以 root 用户身份登录。如果我们使用的是 Omnibus GitLab 包,则初始密码将自动生成,并在 /etc/gitlab/initial_root_password 中保留至少 24 小时。

  • 登录后,单击界面右上角的 管理区域图标以查看管理选项。

用户

GitLab 中的每个用户都需要一个帐户,其中包含登录凭据和个人数据。

用户的帐户包含一个 命名空间,其中包含用户的所有项目。

  • 例如,Alice 名为 website 的项目的 URL 将为 http://yourserver/alice/website

  • 同样,http://yourserver/bob/api-docs 将是 Bob 的项目 api-docs 的 URL。

  • 通过使用命名空间帮助按用户组织项目,可以更轻松地管理和查找项目。

有两种方法可以从 GitLab 中删除用户帐户

  • 阻止用户:这会阻止用户访问 GitLab,但会保留其所有数据。

    他们的电子邮件关联的项目和提交仍然可用,并且他们的个人资料数据被安全地保存。

  • 销毁用户:这会永久地从磁盘和数据库中删除用户。

    这是一个更严重且永久的步骤,因为他们拥有的任何项目、数据和组都将被删除。由于此方法是永久性的,因此很少需要使用。

简单来说,GitLab 组是相关项目的集合,用于控制用户访问。

类似于用户命名空间,每个组都有自己的命名空间。

  • 例如,如果组 training 有一个名为 materials 的项目,则 URL 将为 http://server/training/materials

  • 用户在每个组中被授予不同的权限级别,这些权限级别决定了他们对组的设置和项目的访问权限和控制权限。

  • 访客(查看问题并参与聊天)到 所有者(对组、其成员和其项目拥有完全控制权),有多个可用权限级别。

  • GitLab 在管理员面板上提供了有关这些权限的完整列表的说明。

项目

通常,GitLab 项目表示单个 Git 仓库。

每个项目都与一个命名空间关联,该命名空间可以是个人或组。

  • 拥有项目的用户可以控制谁可以访问它。

  • 如果项目属于组,则访问权限由组中的用户级别权限控制。

此外,项目的可见性设置确定谁可以访问其页面和仓库

  • 私有:只有获得项目所有者明确许可的人员才能查看或与项目交互。

  • 内部:对任何具有有效登录名的 GitLab 用户开放。

  • 公开:每个人都可以访问,即使他们未登录。

此可见性设置会影响项目的在线界面和仓库访问。

钩子

GitLab 允许系统和项目钩子,这些钩子使服务器能够在响应预定义事件时发送包含 JSON 数据的 HTTP POST 请求。

通过使用此功能,GitLab 可以与其他开发工具集成,包括部署系统、聊天程序和持续集成 (CI) 服务器。

  • 通过使用钩子,可以简化和自动化开发周期的一部分,这些钩子允许基于仓库活动进行自动交互和通知。

  • 我们可以通过配置这些钩子来提高 GitLab 环境的性能和连接性。

基本用法

为了使用 GitLab,我们首先必须单击工具栏上的 + 符号以启动新项目。

在出现提示时,必须输入项目名称、命名空间(用户或组)和可见性级别(私有、内部或公开)。

项目的参数允许将来进行调整,因此这些参数不是一成不变的。

选择 创建项目后,将创建该项目。

  • 我们可以将新创建的项目链接到本地 Git 仓库。

  • GitLab 提供了 SSH 和 HTTPS 访问的 URL,位于项目网页的顶部。

  • 我们将使用这些 URL 设置 Git 远程,以将我们的本地仓库与 GitLab 同步。

我们使用这些命令来处理现有的 GitLab 仓库

添加远程:如果我们希望将本地仓库链接到 GitLab 项目,请使用此命令添加远程 gitlab

git remote add gitlab https://server/namespace/project.git

这里,https://server/namespace/project.git 是我们的 GitLab 项目的 URL。

克隆仓库:如果我们还没有本地副本,则可以使用以下方法直接从 GitLab 克隆仓库

git clone https://server/namespace/project.git

此命令将默认远程称为 origin 设置为 GitLab URL,并生成仓库的本地副本。

Web UI 中的视图:GitLab 的 Web 界面在仓库中提供多个视图。

项目主页上显示了最近的活动,并且我们可以通过顶部的导航链接访问项目的文档和提交日志。

由于这些功能,我们可以更有效地管理和审查仓库。

协同工作

我们可以使用合并请求或提供直接推送访问来协同处理 GitLab 项目。

  • 直接推送访问:通过在 成员区域中向用户授予 开发者或更高级别的访问权限,我们可以授予他们对提交和分支的直接推送访问权限。

  • 合并请求:如果用户没有推送访问权限,他们仍然可以通过分叉项目或创建分支并发送合并请求来做出贡献。

    项目所有者使用此方法选择接受哪些贡献,从而可以控制地集成修改。

  • 讨论和审查:合并请求和问题支持深入的讨论和代码审查,并提供分配责任和将工作分类为里程碑的工具。

GitLab 还提供了其他功能,例如 项目 Wiki维护工具

大多数管理都可以通过 Web 界面完成,从而减少了对直接服务器设置的需求。

广告