一、行为权限相关
在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等.
角色
Gitlab定义了以下几个角色:
- Guest - 访客
- Reporter - 报告者; 可以理解为测试员、产品经理等,一般负责提交issue等
- Developer - 开发者; 负责开发
- Master - 主人; 一般是组长,负责对Master分支进行维护
- Owner - 拥有者; 一般是项目经理
权限
不同角色,拥有不同权限,下面列出Gitlab各角色权限
1. 工程权限
行为 | Guest | Reporter | Developer | Master | Owner |
创建issue | ✓ | ✓ | ✓ | ✓ | ✓ |
留言评论 | ✓ | ✓ | ✓ | ✓ | ✓ |
更新代码 |
| ✓ | ✓ | ✓ | ✓ |
下载工程 |
| ✓ | ✓ | ✓ | ✓ |
创建代码片段 |
| ✓ | ✓ | ✓ | ✓ |
创建合并请求 |
|
| ✓ | ✓ | ✓ |
创建新分支 |
|
| ✓ | ✓ | ✓ |
提交代码到非保护分支 |
|
| ✓ | ✓ | ✓ |
强制提交到非保护分支 |
|
| ✓ | ✓ | ✓ |
移除非保护分支 |
|
| ✓ | ✓ | ✓ |
添加tag |
|
| ✓ | ✓ | ✓ |
创建wiki |
|
| ✓ | ✓ | ✓ |
管理issue处理者 |
|
| ✓ | ✓ | ✓ |
管理labels |
|
| ✓ | ✓ | ✓ |
创建里程碑 |
|
|
| ✓ | ✓ |
添加项目成员 |
|
|
| ✓ | ✓ |
提交保护分支 |
|
|
| ✓ | ✓ |
使能分支保护 |
|
|
| ✓ | ✓ |
修改/移除tag |
|
|
| ✓ | ✓ |
编辑工程 |
|
|
| ✓ | ✓ |
添加deploy keys |
|
|
| ✓ | ✓ |
配置hooks |
|
|
| ✓ | ✓ |
切换visibility level |
|
|
|
| ✓ |
切换工程namespace |
|
|
|
| ✓ |
移除工程 |
|
|
|
| ✓ |
强制提交保护分支 |
|
|
|
| ✓ |
移除保护分支 |
|
|
|
| ✓ |
PS: 关于保护分支的设置,可以进入Settings->Protected branches进行管理
2. 组权限
行为 | Guest | Reporter | Developer | Master | Owner |
浏览组 | ✓ | ✓ | ✓ | ✓ | ✓ |
编辑组 |
|
|
|
| ✓ |
创建项目 |
|
|
| ✓ | ✓ |
管理组成员 |
|
|
|
| ✓ |
移除组 |
|
|
|
| ✓ |
二、用户权限设置相关
添加组成员(流程如下)
三、代码管理上传相关
相关命令
- git init,初始化,表示即将对当前文件夹进行版本控制。
- git status,查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。
- git add 文件名,将指定文件添加到版本库的暂存状态。
- git commit -m '提交信息',将暂存区的文件提交到版本库的分支。
- git log,查看提交记录,即:历史版本记录
- git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
- git stash list 查看“某个地方”存储的所有记录
- git stash clear 清空“某个地方”
- git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
- git stash drop 编号,删除指定编号的记录
- git branch 分支名称 创建分支
- git checkout 分支名称 切换分支
- git branch -m 分支名称 创建并切换到指定分支
- git branch 查看所有分支
- git branch -d 分支名称 删除分支
- git merge 分支名称 将指定分支合并到当前分支
- git remote add origin 远程git地址 为地址起一个别名origin
- git remote rm <主机名> 删除远程主机
- git remote rename <原主机名> <新主机名> 远程主机的改名
- git push origin master 将本地master分支内容以及版本信息推送到gitlab
- git push origin dev 将本地dev分支内容以及版本信息推送到
- git clone 远程git地址 将项目从GitHub中获取
- git branch dev origin/dev 创建dev分支且和远程dev分支同步
- git push origin :dev 删除gitlab上的dev分支 (等同于推了一个空分支给远程)等价于git push origin --delete master
- git remote show origin 查看远程主机地址
- git config --local –list 查看本地对应的远程gitlab
- git fetch <远程主机名> 将某个远程主机的更新,全部取回本地。
- git checkout -b newBrach origin/master 在origin/master的基础上,创建一个新分支
- git rebase/merge origin/master 在当前分支上,合并origin/master
- git pull <远程主机名> <远程分支名>:<本地分支名> 取回远程主机某个分支的更新,再与本地的指定分支合并
- git branch --set-upstream master origin/next master分支追踪origin/next分支(当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名)
- 合并需要采用rebase模式,可以使用--rebase选项
- git pull -p 在本地删除远程已经删除的分支