- Git 入门
- Git - 首页
- Git - 版本控制
- Git - 基本概念
- Git - 命令行
- Git - 安装
- Git - 首次设置
- Git - 基本命令
- Git - 获取帮助
- Git - 工具
- Git - 速查表
- Git - 术语
- Git 分支
- Git - 简述分支
- Git - 创建新分支
- Git - 切换分支
- Git - 分支与合并
- Git - 合并冲突
- Git - 管理分支
- Git - 分支工作流程
- Git - 远程分支
- Git - 跟踪分支
- Git - 变基
- Git - 变基 vs 合并
- Git - 合并提交
- Git 操作
- Git - 克隆操作
- Git - 打标签操作
- Git - 别名操作
- Git - 提交操作
- Git - 暂存操作
- Git - 移动操作
- Git - 重命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修补操作
- Git - 差异操作
- Git - 状态操作
- Git - 日志操作
- Git - HEAD 操作
- Git - origin master
- Git 撤销
- Git - 撤销更改
- Git - Checkout
- Git - 恢复
- Git - 重置
- Git - 恢复操作
- Git - Rm
- Git - 切换操作
- Git - Cherry-pick
- Git - 修改
- 服务器上的 Git
- Git - 本地协议
- Git - 智能 HTTP 协议
- Git - 哑 HTTP 协议
- Git - SSH 协议
- Git - Git 协议
- Git - 在服务器上获取 Git
- Git - 设置服务器
- Git - 守护进程
- Git - GitWeb
- Git - GitLab
- Git - 第三方托管选项
- 分布式 Git
- Git - 分布式工作流程
- Git - 为项目做贡献
- Git - 维护项目
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 界面完成,从而减少了对直接服务器设置的需求。