GitLab - 一些基础使用
1 - GitLab角色权限
1.1 组(同一组成员的行为权限)
- 管理员创建不同的分组,然后设定分组的负责人(Owner)
- Owner可以添加组员,为组创建项目,指定项目的负责人
- 项目负责人可以添加项目成员并设定对应的级别
组中的角色与权限
- Guest - 访客:可以创建issue、发表评论,不能读写版本库
- Reporter - 报告者: QA、PM等,可以克隆代码,不能提交
- Developer - 开发者: RD,可以克隆代码、开发、提交、push
- Master - 主人:核心RD负责人,负责对Master分支进行维护,可以创建项目、添加tag、保护分支、添加项目成员、编辑项目
- Owner - 拥有者: RD Leader,设置项目可见度、删除项目、迁移项目、管理组成员
角色对应的权限

1.2 项目(可见度,项目的访问权限)
- Private - 私有,只有属于该项目的成员才能查看、拉取代码
- Internal - 内部,可以被任何登录的用户查看、拉取代码
- Public - 公开,任何人都可以查看、拉取代码
2 - 创建组和项目
2.1 创建组
只有管理员账户才可以创建群组(Group),创建时,一般默认是私有组,管理员是Owner。



添加组成员


2.2 创建项目
在组的页面,点击“新建项目”,有三种创建项目的方式
- Blank project:创建一个空项目
- Create from template:创建模板项目
- Import project:从其他代码库导入项目


以新建空白项目为例:


3 - 本地Git配置
3.1 连接验证
特别注意:必须通过GitLab连接验证,才可以拉取和提交代码
GitLab默认提供SSH和HTTP两种方式拉取代码
- SSH:将常用的本地开发环境的SSH公钥复制到GitLab用户配置中,无需输入用户名和代码
- HTTP方式:直接使用用户名和密码,但每次都要重新输入
Anliven@Anliven-PC /d/Project
λ ssh-keygen -t rsa -C "anliven@126.com" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Anliven/.ssh/id_rsa):
Created directory '/c/Users/Anliven/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Anliven/.ssh/id_rsa.
Your public key has been saved in /c/Users/Anliven/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:sMAcpgAoRuKYZOTXBVJatSkrJ/as8sYh/T+nnVrHUMg anliven@126.com
The key's randomart image is:
+---[RSA 4096]----+
|O= .++oo |
|X+ ==.. + . |
|=o.o+o.o E . |
| . .oo . |
| .+ o. S. |
| ..o* o |
| o oo . o |
| . o.. .o.o |
| +o .+=o |
+----[SHA256]-----+
Anliven@Anliven-PC /d/Project
λ
Anliven@Anliven-PC /d/Project
λ cat /c/Users/Anliven/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDQSFpwR9eBCTKfTbPEE8TWIo75KfX3AczpXK6nTKGH248pxjfq7cDe2cGj1VOSqknMqvg0g1LLiXrgbIGbtclt49UKSFXxWnVm04rZHVsz9rtfzxuF/NmSqSv7isYLZvwaI4aGXkLwILOemqwCbPRybGlkIiU9sgFK6m5gBWpsA6WqbHGlll8o1jC1cIuiPcJuYwod4+ehI5GvH3Tr3rUjkWy0QEhFfV22Nt79mJ3D+xDpDP/SxhPtPWw1Ob1+10+0+xvSTvGR/gcLUnUXciIooJVSypTPLnGe+d4Y5i+jCzDRIxeXBEQrQXafoxTjPNMb/T84mkPH+MSSTnvAk6Oelcs9MJLDIlXcDGSKXSzl2XmjjiTglq0R5gnRtUL6jxcyR0Db5mEF5maumfyKz58/O5pSDGVRW13O6V0YGq6j8f5mcn8h1usdqabbirUGA5+7OB2Ek4KlLy/U6GkHtr5gY4zch08A8/xWowGppOjb8b/MqxJuLmQY1+vvUlupALd6nNmacugmlZK+ZsheTCJhdNHLBVl40b4UZdbD19LCI5cFonvJP979J4SIc8gHh7SXu7lSTRWciA0BKLrwhhHID1PHnF5o0re4kENZW4LYiXhBo998+7TtXiK+itnjUsfHRDPUvQC0OrhmLf/DAyanpRs65rXFONEaVGf4NS+PCQ== anliven@126.com
Anliven@Anliven-PC /d/Project
λ


3.2 添加README文件
在项目界面,根据提示添加README文件后,左侧会出现“仓库”功能

3.3 受保护的分支
新创建的项目默认会把master分支设置为“受保护的分支”,只有项目的Owner和Master才有权限直接向受保护的分支提交代码。
- 后期项目开发时,可以创建普通的Develop分支,从而以Developer角色进行代码提交
- 创建merge request请求,在项目Owner和Master进行代码审查无误后,将代码合并到master分支
- 创建分支时,必须填写分支名称、从哪个分支、标签或具体的提交号拉出来
4 - 本地项目的Git配置
4.1 命令行指引
在项目页面,可以在“命令行指引”部分查看到配置方法
# Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
# 创建一个新仓库
git clone http://192.168.16.102/testgroup/testproject.git
cd testproject
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
# 推送现有文件夹
cd existing_folder
git init
git remote add origin http://192.168.16.102/testgroup/testproject.git
git add .
git commit -m "Initial commit"
git push -u origin master
# 推送现有的 Git 仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin http://192.168.16.102/testgroup/testproject.git
git push -u origin --all
git push -u origin --tags
4.2 Git本地用户配置示例
Anliven@Anliven-PC /d/Project
λ git config --global user.name "user01"
Anliven@Anliven-PC /d/Project
λ git config --global user.email "anliven@126.com"
Anliven@Anliven-PC /d/Project
λ
Anliven@Anliven-PC /d/Project
λ git config --list
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.name=user01
user.email=anliven@126.com
Anliven@Anliven-PC /d/Project
λ
Anliven@Anliven-PC /d/Project
λ
4.3 拉取及提交代码示例
Anliven@Anliven-PC /d/Project
λ git clone http://192.168.16.102/testgroup/testproject.git
Cloning into 'testproject'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
Anliven@Anliven-PC /d/Project
λ ll
total 0
drwxr-xr-x 1 Anliven 197121 0 十一 28 00:05 testproject/
Anliven@Anliven-PC /d/Project
λ echo "hello" >> testproject/README.md
Anliven@Anliven-PC /d/Project
λ cd testproject/
Anliven@Anliven-PC /d/Project/testproject (master)
λ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
Anliven@Anliven-PC /d/Project/testproject (master)
λ git add *
warning: LF will be replaced by CRLF in README.md.
The file will have its original line endings in your working directory
Anliven@Anliven-PC /d/Project/testproject (master)
λ git commit -m "test 002"
[master 6693ace] test 002
1 file changed, 1 insertion(+), 1 deletion(-)
Anliven@Anliven-PC /d/Project/testproject (master)
λ
Anliven@Anliven-PC /d/Project/testproject (master)
λ git push -u origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 251 bytes | 251.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.16.102/testgroup/testproject.git
defc521..6693ace master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Anliven@Anliven-PC /d/Project/testproject (master)
λ
GitLab - 一些基础使用的更多相关文章
- GITLAB服务基础
1.GITLAB介绍 一个基于GIT的源码托管解决方案基于Ruby on rails开发集成了nginx postgreSQL redis sidekiq等组件 2. 资源 官网:https://ab ...
- gitlab升级和迁移
由于近期公司gitlab服务器老是卡顿和出现其他问题,然后也很久没有升级过了,现在版本还是8.10.5,而官网最新版本已经是11.2了.另一个原因是gitlab所在的这台服务器快到期了,想换一台配置更 ...
- Gitlab 备份迁移恢复报错gtar: .: Cannot mkdir: No such file or directory
1. 版本信息 OS: centos 6.9 Gitlab: gitlab-ce.10.7.4 gitlab-ce.10.8.0 gitlab-ce.10.8.3 gitlab-ce.10.8.4 2 ...
- Gitlab+Jenkins学习目录
Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...
- gitlab相关
1.gitlab的概述 1.gitlab是什么 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 基础功能免费,高级功能收费 2.为什么要使用gitla ...
- gitlab系列详解
虚拟机的安装1.安装virtualboxhttps://www.virtualbox.org/2.安装centos6.63.配置网络右键-->网络-->网卡2-->host-only ...
- 【ASP.NET Core分布式项目实战】(六)Gitlab安装
Gitlab GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能.使用Git作为代码管理工具,并在此基础上搭建起来的web服务 ...
- GitLab CI/CD的官译【原】
CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...
- GitLab企业级代码管理仓库
原文:https://www.cnblogs.com/wsnbba/p/10171052.html 使用GitHub或者码云等公共代码仓库 使用GitLab私有仓库 GitLab是什么? 是一个用 ...
随机推荐
- poj1860 Currency Exchange(spfa判断是否存在正环)
题意:有m个货币交换点,每个点只能有两种货币的互相交换,且要给佣金,给定一开始的货币类型和货币数量,问若干次交换后能否让钱增加. 思路:spfa求最长路,判断是否存在正环,如果存在则钱可以在环中一直增 ...
- js插件---videojs中文文档详解
js插件---videojs中文文档详解 一.总结 一句话总结: js插件网上都有很多参考资料,使用起来也非常简单 二.lavarel中使用实例 <video id="example_ ...
- 利用avicap32.dll实现的实时视频传输
直接上代码吧! 在窗体上调用的类: using System; using System.Collections.Generic; using System.ComponentModel; using ...
- 项目Alpha冲刺 10
作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 介绍第10天冲刺的项目进展.问题困难和心得体会 1.团队信息 队名:火鸡堂 ...
- Python的私有变量与装饰器@property的用法
Python的私有变量是在变量前面加上双横杠(例如:__test)来标识, Python私有变量只能在类内部使用,不被外部调用,且当变量被标记为私有后,调用时需再变量的前端插入类名,在类名前添加一个下 ...
- vue关于keep-alive的小坑
在移动端里 少不了底部导航 在做底部导航的时候点击都会重复请求 我就使用了keep-alive来缓存 每次点击的时候走缓存 这里还有个用途就是当有列表的时候点进详情在返回可以保存之前的滚动记录 不会刷 ...
- 用pickle保存机器学习模型
在机器学习中,当确定好一个模型后,我们需要将它保存下来,这样当新数据出现时,我们能够调出这个模型来对新数据进行预测.同时这些新数据将被作为历史数据保存起来,经过一段周期后,使用更新的历史数据再次训练, ...
- git:GitLab代码回滚到特定版本
在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本.步骤如下: 1.查找commitId (1)用命令行打开git项目路径,输入git log命令查看comm ...
- 农场派对(party)(信息学奥赛一本通 1497)
[题目描述] N(1≤N≤1000)头牛要去参加一场在编号为 x(1≤x≤N) 的牛的农场举行的派对.有 M(1≤M≤100000) 条有向道路,每条路长 Ti(1≤Ti≤100):每头牛都必须参加完 ...
- 【算法编程 C++ Python】二维数组查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 最简单:每一行都 ...