前言
工作中我们经常使用到代码仓库,如:GitLab和GitHub。 在使用过程中,可能有的设置不知道在哪里,本文记录 GitLab
工具使用过程中角色分类、角色权限、仓库路径、分组、分支合并请求等基础知识,希望对你有所帮助。
GitLab和GitHub区别
-
开源与闭源:GitLab是开源的,意味着它的源代码可以被任何人查看、修改和分发,而GitHub虽然提供了一些开源项目,但本身是闭源的。
-
私有仓库:GitLab提供了无限的私有仓库,而GitHub的私有仓库数量有限,除非付费。
-
集成和功能:GitLab提供了更全面的集成和功能,包括CI/CD、容器注册表等,而GitHub主要集中在代码托管和协作上。
-
核心区别对比
维度 | GitHub | GitLab |
---|---|---|
定位 | 全球最大开源社区(社交化编程) | 一体化DevOps平台(企业级全流程) |
托管模式 | 公有云为主 | 支持公有云+私有化部署 |
CI/CD | 需依赖GitHub Actions | 内置GitLab CI/CD(.gitlab-ci.yml) |
权限管理 | 基础团队权限 | 精细化权限(子组、分支保护等) |
Wiki/文档 | 基础Wiki功能 | 内置文档系统+知识库管理 |
免费私有库 | 2019年后开放 | 始终支持免费私有库 |
典型用户 | 开源项目、个人开发者 | 企业团队、需要完整DevOps流程的组织 |
GitLab配置ssh拉取代码
mac查看本地是否有ssh密钥
cd ~/.ssh
ls
查看当前文件夹,如果在输出的文件列表中发现id_rsa
和id_rsa.pub
的存在,证明本地已经存在SSH密钥。
cat ./id_rsa.pub
查看公钥,复制
打开gitlab网站,点击头像-偏好设置-ssh密钥进行配置

- 验证ssh是否成功
终端输入: ssh -T [email protected]

这里出现:successfully、Welcome
即为绑定成功,可以看到我的github、gitlab的ssh都配置成功了!
之后就可以在gitlab中使用 ssh的方式进行拉取代码了。
GitLab角色相关
查看自己的角色权限
要查看自己在某个GitLab项目中的角色以及权限,操作如下:
- 登录到GitLab。
- 进入你想查看权限的项目页面。
- 在左侧菜单中,点击
Members(成员)
。 - 在成员列表中,你可以看到自己和其他成员的角色。
各角色权限级别
gitLab中的角色级别从低到高依次为:
- Guest(访客):只能查看项目的公开内容。
- Reporter(报告者):可以查看和克隆代码,但不能推送代码。
- Developer(开发者):可以查看、克隆和推送代码。
- Maintainer(维护者):管理员权限,可以管理项目设置和成员。
- Owner(拥有者):拥有项目的所有权限(仅限于个人项目)。
各个角色拥有的权限(图片摘自网络):

分配权限
如果你是项目的 Maintainer
或 Owner
,分配权限操作如下:
- 进入你想管理的项目页面。
- 在左侧菜单中,点击
Members(成员)
。 - 点击
Invite members(邀请成员)
按钮。 - 输入成员的用户名或邮箱地址。
- 选择适当的角色权限级别(Guest、Reporter、Developer、Maintainer)。
- 点击
Invite
按钮。
组成员权限Project members permissions
任何用户都可以将自己从组中删除,除非他们是该组的最后一个所有者。下表描述了组中的各种用户权限级别。

参数说明:
-
Browse group:浏览分组信息
-
Edit group:修改分组
-
Create subgroup:创建子分组
-
Create project in group:给项目创建分组
-
Manage group members:管理分组成员
-
Remove group:删除分组
-
Manage group labels:管理分组标签
修改仓库访问路径、分组
左侧菜单【Settings】->【General】->【Advanced】->【Expand】->【Change path】,只能修改最后一段Path,其中不能再包含 /
,修改后点击 "Change path" 即可


如果该仓库是有分组的还会出现如下内容:

可以对该仓库进行分组修改。
提交分支合并请求
左侧菜单点击:
- repository
- branches 可以看到分支
- 选择要合并的分支,如:
develop
点击Merge request

提交请求后,等待有权限的管理员审核即可。
管理员收到分支请求后会看到如下界面,点击 merge
即可完成分支的合并。
