作为本地gitlab服务器的管理员,有哪些操作?基本的肯定是管理其他用户,权限等等。
gitlab通过 group 管理用户,通过 project管理仓库。

所有的说明文档,官网:Use GitLab | GitLab

同样是可以通过gitlab官网主界面的底部的标签找到相关页面入口的,docs
基本看看官方原文档也能看懂(英文),csdn博客也有各式各样的翻译了,不过还是从官方文档入手感觉比较放心。
一:project
        Projects can be available publicly, internally, or privately. GitLab does not limit the number of private projects you can create
        1. project 有三种属性:public internal  private 
                public: public projects can be cloned without any authenticaton over HTTPS.
                           They are listed in the public access directory (/public) for all users
                            公共的,无需任任何权限验证就可以clone, 所有用户都可在列表中看到这个project 
                internal:Internal projects can be cloned by any signed-in user except external users.
                                They are also listed in the public access directory (/public), but only for signed-in users.  内部的,可以被已经注册的用户clone(在本服务器上注册过的用户,并没有提到grop的限制)
                private:Private projects can only be cloned and viewed by project members (except for guests).
                        They appear in the public access directory (/public) for project members only
                        私有: 只能是本组的。
        2. 创建projcet
                  原文档也有详细的说明,软件都是在跟新变化的,就不自己再翻译了,还是瞅瞅官方文档吧。基本也是傻瓜式下一步下一步的操作。

二:group

(待补充)
三:MR(merge request, 合代码请求)

(待补充)
四:ci, Pipelines (自动化测试管道)

(待补充)

五:实际操作:(这里全是本地测试,所以用户名,密码,邮箱等等都随意)

5.1建group

注意,创建group 有一个属性: Require all users in this grop to set up two-factor authentication,默认是勾着的,要把它 去掉,不然成员用户登陆操作的时候,总是弹出个 双因子验证身份的界面(类似于qq安全,动态密码等等这样的功能,加强身份验证的,本地测试全去掉。)如果创建的时候没有修改,后续点击 grop,页面的第一条就有 edit 编辑按钮可以进去修改group的属性。

5.2 注册/创建 普通用户

在登陆界面直接注册普通用户:(也可以在管理员里面直接创建用户),自己注册的用户需要管理员的批准,在 Admin Area->users_pending approval.
下面注册了两个用户:
suolong   suolong@hzw.com  password:12345678
shanzhi   shanzhi@hzw.com   password:12345678
(这些用户信息,头像,邮箱信息,密码等后续都可以通过管理员账号登陆进去进行修改,邮箱只要符合格式即可,至于是否真实存在可用,本地测试不重要)

5.3 往group里面添加普通用户成员

可以选择角色,默认为guest访客,切换为developer开发者角色

5.4 group下建 project

注意,每个用户都可以建project,管理员用户也可以直接建project,有三个属性,但是这个project不是和grop关联的,这种个人建的 private project需要自己手动去邀请成员,我们这里希望整个group都自动有这个project的权限,所以是先建group,然后去group下面再建属于这个group的project.

在群组里面创建project,群组成员都可以在自己的project列表里面看到这个project
 (为了在同一太电脑上登陆多个普通用户,做了个蠢的操作,装了多浏览器,一个浏览器等一个账户。没办法浏览器的什么缓存机制总是自动登上第一个账户上去了 。。。。。。)

5.5  在Linux上下载代码

Linux下生产ssh-key ,公钥
        #ssh-keygen
        #cat ~/.ssh/id_rsa.pub
       将输出的公钥 添加到gitlab 普通用户的sshkey配置页里面去。(这一步主要是添加下载代码的权限)
       就可以下代码:
从gitlab ,project 下面复制这个地址 XX 过来,在Ubuntu上:
#git clone XX
默认这个地址是个域名,如果我们的虚拟机无法解析域名,直接换成gitlab服务器的ip地址就行了,如下图:

5.6 普通用户提代码

gitlab 以MR作为一次提交,merge request

用自己的话概括,就是, 1.0 开发都是自己先 git checkout out -b 创建一个自己私人临时的分支,2.0然后你往自己的分支上修改提代码, commit到本地,3.0然后push到服务器上这个你的临时分支,(第一次push 之前可以手动和远程仓库关联,因为远程仓库没有你这个个人临时分支,不执行关联操作也没有关系,直接push, 会报错有提示你添加xxx选项,用建议的命令再push一次即可,push成功服务器上的仓库也会对等地新建好个人的这个临时分支。)在自己的临时分支上提代码就比较放松不会影响其他人,万一提错了把这个分支干掉重新来也是没问题的 4.0在gitlib 上就可以看到自己的临时分支和自己的提交,等确认这个OK, 就去Gitlib上创建一个MR, mege request, 请求把你这个临时分支merge到指定的正式分支上去,比如develop分支。 这个MR,就是合码请求。 然后等人review你这个MR, 批准,5.0合入到正式分支

到上面这个过程,只是把pubkey 添加到了一个 gitlab个人账号上,直接push的时候会有错误提示:

提示已经很明确,可以通过 git config 设置用户身份,--global参数是全局的缺省值,我们只是想在这个目录的这个仓库里面使用这个身份,换一个目录使用其他身份,所以不添加global参数,一般公司是开发的话个人肯定是只有自己一个用户,都使用 --global

所以,下载代码的时候在gitlab账号上绑定了ssh-key ,应该已经明确gitlab账号和本机的关系了,但是这里git commit 不知道用户,思考一下,这里git commit操作知识git的本地操作,和gitlab服务器是没有关系的,所以这里 git config, 配置的是git.  表面这个仓库里面对git命令操作的用户

直接在这个目录下修改提交代码,是不允许的,如下:

我们提代码,需要自己在开创一个个人的或者是用于修改某一个bug/功能的分支,在新的分支上修改提交代码,然后把这个新分支也推送到gitlab服务端,再发起一个合并代码的请求,请求把新分支的修改合并到主干分支。
#git branch personal/suolong   //从当前分支节点新建一个 personal/suolong分支
#git checkout personal/suolong   //切换到 personal/suolong分支    
上面两条命令可以合成一条,git checkout -b personla/suolong
然后在新的分支上commit,push

新的分支只是在本地,所以第一次push的时候,需要 --set-upstream  ,这样服务器上的仓库也有我们创建的新分支 personal/suolong  这个仓库使用的是 suolong账号,登录这个账号可以看到刚才的提交:

直接在上面 create merge request 来个合码请求,MR,从个人分支 personal/suolong合并到 main

git学习(2)gitlab 使用相关推荐

  1. Git学习5 GitLab与GitHub操作

    目录 1. GitLab与GitHub介绍 gitLab介绍 Github gitLab 注册 安装 gitLab 服务器 2. 私有GitLab服务器部署 3. GitLab创建仓库 4. GitL ...

  2. 【git学习】GitLab中如何批量删除本地以及远程的TAG标签

    一.需求描述 之前从一个古老的仓库,fork了一份代码,如何开发新的需求.发现有很多Tag和Branch都是之前仓库的,我并不需要,因此需要把他们清理掉. 之前Branch的我们写好了脚本删除了,这里 ...

  3. git学习——设置gitlab、github默认push的用户名和密码

    在使用git的时候,不同的环境下,当你重新安装git,最好在开始的时候就配置一下默认的git的用户名和密码,这样子就可以在每次的push的时候不需要手动的在去输入git的用户名和密码,提高执行的效率. ...

  4. 【git学习】SVN项目迁移到Git操作指南

    2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情. git学习--- ...

  5. Git学习二、GitLab官网,安装自己的一个私有Gitlab代码管理库

    Git学习一.TortoiseGit 安装后,文件夹前面不显示相关状态图标解决办法 Git学习二.GitLab官网,安装自己的一个私有Gitlab代码管理库 Git学习三.Git与SVN的差异,Git ...

  6. 超详细的Git学习记录(Git基础内容/IDEA集成Git/GitHub/Gitee/GitLab及Centos7部署GitLab)

    超详细的Git学习笔记 从B站搜到的尚硅谷视频学习了Git,记录了一下学习的内容,收获很大 学习地址: https://www.bilibili.com/video/BV1vy4y1s7k6?p=11 ...

  7. Mac~git学习和应用需要注意的几个点

    Git学习推荐网站:廖雪峰-Git教程 - 廖雪峰的官方网站,通俗易懂,简单粗暴,就是平俗的语言,好懂.粗暴的那种 git学习进阶-国外经典git学习网站:Git - Book 目录 1. 全局配置和 ...

  8. 面向任务的 Git 学习法

    前言 对于 Git 学习而言,通常枯燥的理论学习并不能帮助我们快速掌握它的使用,需要我们结合实践,才能更好地学会利用 Git 进行多人协作开发.本文就以任务的形式,来介绍 Git 命令的使用,希望在进 ...

  9. Git 学习笔记:5 分布式工作流程

    Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...

  10. git学习总结01 — 初始化

    git学习总结01 - 初始化 文章目录 git学习总结01 - 初始化 1. 起步 2. 初始化配置 2.1 设置签名 config 2.2 初始化本地库 init 2.3 配置忽略文件 .giti ...

最新文章

  1. IDEA2021全局配置maven
  2. HDU2141(二分查找)
  3. Qt安装及配置_很详细(附下载网址)
  4. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
  5. mysql里面integer默认宽度_MySQL中关于数据类型指定宽度之后的情况
  6. 学习记录-交叉编译环境的设置
  7. #if DEBUG vs. Conditional(“DEBUG”)
  8. apache ignite_Apache Ignite本机持久性,简要概述
  9. setTimeout 和 setInterval 的区别
  10. 塔康信号matlab,干扰效能仿真,jamming effect simulation,音标,读音,翻译,英文例句,英语词典...
  11. Excel数据分析系列之用好底层分析工具统计分析功能
  12. 用百用计算机弹出,CPU使用率老是100%怎么办?小编详解解决CPU过高的问题
  13. 浙江高院:引导当事人用区块链存取证据,微版权提供一站式知识产权保护服务
  14. 传奇世界开服教程-地图编号与小地图编号查找方法
  15. java bean 转bean_如何用Bull转换任意类型的Java Bean
  16. 给定两个字符串 s 和 t,它们只包含小写字母。
  17. R语言—Shiny框架
  18. 电脑android模拟器哪个好用,安卓模拟器哪个好用
  19. 倪光南——世人笑我太疯癫,我笑他人看不穿
  20. Gradio快速搭建ML/DL Web端服务

热门文章

  1. 缺陷轰炸和beta测试详解
  2. 【C语言】字符个数统计 笔试常见题型
  3. SVM学习笔记-对偶形式的SVM
  4. 11 RabbitMQ消息的可靠性保障
  5. 不只是CAD电子签名,设计院电子签章还要有这些!
  6. Android视频流解码
  7. 硬件知识(二)无源RC二阶滤波电路
  8. Unity 3D游戏开发 - U3D入门 | 游戏场景基本操作
  9. adb连接各种模拟器
  10. Centos系统各种日志存详解