Skip to content

Instantly share code, notes, and snippets.

@AgoniNemo
Last active August 27, 2020 10:21
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save AgoniNemo/ebbb33e757e8261f2531c90e28ea71c3 to your computer and use it in GitHub Desktop.
Save AgoniNemo/ebbb33e757e8261f2531c90e28ea71c3 to your computer and use it in GitHub Desktop.

访问权限 - Visibility Level

  • Private - 私有,只有属于该项目成员才有原先查看
  • Internal - 内部,用个Gitlab账号的人都可以clone
  • Public - 公开,任何人可以clone

行为权限

在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等.

角色

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分支管理策略
A successful Git branching model

git config

#github AgoniNemo@163.com
host github
    Hostname github.com
    User AgoniNemo
    IdentityFile ~/.ssh/github_id_rsa

#gitlab zhouxiangfeng@mjwon.com
host gitlab-xzc
    Hostname 10.10.10.79
    User zhouxf
    Port 11000
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

#gitlab AgoniNemo@163.com
host oschina
    Hostname git.oschina.net
    User AgoniNemo
    IdentityFile ~/.ssh/oschina_id_rsa

关于svn迁移的部分

# 导出svn上的项目数据到本地(svn://xiezc@192.168.31.18/prjs/truly_app/src/dev/android)
git svn clone http://svn地址 --trunk="trunk" --tags="tags" --branches="branches" --authors-file=users.txt(users.txt路径地址)  本地仓库路径
# 第二种这里是把tag与branches都下载下来
git svn clone http://svn地址 --no-metadata  --authors-file=users.txt 本地仓库路径

# 进入到本地仓库路径
cd 本地仓库路径

# 添加远程仓库(IM这里gitlabe成员所在的组,也可以填gitlab的用户名, gitlab-zxf是配置的地填写的host)
git remote add origin git@gitlab-zxf:IM/Android.git

# 添加改动文件
git add .

# 添加改动注释
git commit -m "更新内容"

# 从本地向远程仓库推送master代码
git push -u origin master

# push 所有的 branch
git push origin --all

# push 所有的 tag
git push origin --tags
# 报错fatal: remote origin already exists.
git remote rm origin

# 合并pull两个不同的项目失败 ,提示:fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = http://10.10.10.79:11000/Android/IM.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[svn-remote "svn"]
        url = svn://xiezc@192.168.31.18/prjs
        fetch = truly_app/src/dev/android/trunk:refs/remotes/origin/trunk
        branches = truly_app/src/dev/android/branches/*:refs/remotes/origin/*
        tags = truly_app/src/dev/android/tags/*:refs/remotes/origin/tags/*
[svn]
        authorsfile = /Users/Nemo/Documents/Test/svn-git/users.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment