git学习(2)gitlab 使用
作为本地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 使用相关推荐
- Git学习5 GitLab与GitHub操作
目录 1. GitLab与GitHub介绍 gitLab介绍 Github gitLab 注册 安装 gitLab 服务器 2. 私有GitLab服务器部署 3. GitLab创建仓库 4. GitL ...
- 【git学习】GitLab中如何批量删除本地以及远程的TAG标签
一.需求描述 之前从一个古老的仓库,fork了一份代码,如何开发新的需求.发现有很多Tag和Branch都是之前仓库的,我并不需要,因此需要把他们清理掉. 之前Branch的我们写好了脚本删除了,这里 ...
- git学习——设置gitlab、github默认push的用户名和密码
在使用git的时候,不同的环境下,当你重新安装git,最好在开始的时候就配置一下默认的git的用户名和密码,这样子就可以在每次的push的时候不需要手动的在去输入git的用户名和密码,提高执行的效率. ...
- 【git学习】SVN项目迁移到Git操作指南
2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情. git学习--- ...
- Git学习二、GitLab官网,安装自己的一个私有Gitlab代码管理库
Git学习一.TortoiseGit 安装后,文件夹前面不显示相关状态图标解决办法 Git学习二.GitLab官网,安装自己的一个私有Gitlab代码管理库 Git学习三.Git与SVN的差异,Git ...
- 超详细的Git学习记录(Git基础内容/IDEA集成Git/GitHub/Gitee/GitLab及Centos7部署GitLab)
超详细的Git学习笔记 从B站搜到的尚硅谷视频学习了Git,记录了一下学习的内容,收获很大 学习地址: https://www.bilibili.com/video/BV1vy4y1s7k6?p=11 ...
- Mac~git学习和应用需要注意的几个点
Git学习推荐网站:廖雪峰-Git教程 - 廖雪峰的官方网站,通俗易懂,简单粗暴,就是平俗的语言,好懂.粗暴的那种 git学习进阶-国外经典git学习网站:Git - Book 目录 1. 全局配置和 ...
- 面向任务的 Git 学习法
前言 对于 Git 学习而言,通常枯燥的理论学习并不能帮助我们快速掌握它的使用,需要我们结合实践,才能更好地学会利用 Git 进行多人协作开发.本文就以任务的形式,来介绍 Git 命令的使用,希望在进 ...
- Git 学习笔记:5 分布式工作流程
Git 学习笔记:5 分布式工作流程 分布式工作流程 集中式工作流 集成管理员工作流 司令官与副官工作流 工作流程总结 向一个项目贡献 提交准则 私有小型团队 John's Machine 私有管理团 ...
- git学习总结01 — 初始化
git学习总结01 - 初始化 文章目录 git学习总结01 - 初始化 1. 起步 2. 初始化配置 2.1 设置签名 config 2.2 初始化本地库 init 2.3 配置忽略文件 .giti ...
最新文章
- IDEA2021全局配置maven
- HDU2141(二分查找)
- Qt安装及配置_很详细(附下载网址)
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
- mysql里面integer默认宽度_MySQL中关于数据类型指定宽度之后的情况
- 学习记录-交叉编译环境的设置
- #if DEBUG vs. Conditional(“DEBUG”)
- apache ignite_Apache Ignite本机持久性,简要概述
- setTimeout 和 setInterval 的区别
- 塔康信号matlab,干扰效能仿真,jamming effect simulation,音标,读音,翻译,英文例句,英语词典...
- Excel数据分析系列之用好底层分析工具统计分析功能
- 用百用计算机弹出,CPU使用率老是100%怎么办?小编详解解决CPU过高的问题
- 浙江高院:引导当事人用区块链存取证据,微版权提供一站式知识产权保护服务
- 传奇世界开服教程-地图编号与小地图编号查找方法
- java bean 转bean_如何用Bull转换任意类型的Java Bean
- 给定两个字符串 s 和 t,它们只包含小写字母。
- R语言—Shiny框架
- 电脑android模拟器哪个好用,安卓模拟器哪个好用
- 倪光南——世人笑我太疯癫,我笑他人看不穿
- Gradio快速搭建ML/DL Web端服务