假设我们当前项目下有两个分支,分别名为 master 和 dev
根据 gitee 的项目成员权限说明,我们将 master 分支设置为保护分支,将 dev 分支设置为常规分支。如图所示。
然后创建我们的用户及相应 ssh key
假设现在有两个用户分别是 yeahlife@yeah.net 和 fzbbookmarks@gamil.com ,当然了,这两都是我的常用邮箱,你自己可以去实验就行。
生成 yeahlife@yeah.net 用户的 ssh key 和 fzbbookmarks@gmail.com 的ssh key。
然后将 yeahlife@yeah.net ssh key 布署到 yeahlife@yeah.net 账号下或者说是管理员账号下的ssh公钥,
让 yeahlife@yeah.net 来管理 master 分支(管理员)。
同样,将 fzbbookmarks@gmail.com ssh key 布署到 fzbbookmarks@gmail.com 账号下的ssh公钥,
让 fzbbookmarks@gmail.com 来操作 dev 分支(开发者)。
两个 ssh key 都布署完毕,我们来测试。
然后,到我们的项目成员管理中,将 yeahlife@yeah.net 设置为管理员(如果是创建者就是管理员,当然也有可能是在企业账号下开发项目等情况), 将 fzbbookmarks@gmail.com 设置为开发者。
这里着重测试 fzbbookmarks@gmail.com 这个用户,查看他对于 master 分支和 dev 分支所能采取的操作,又或者说是确认保护分支是否生效。
复制项目地址
fzbbookmakrs@gmail.com 用户来拉取项目。
git clone git@gitee.com:yourrepo/yourreponame.git
默认拉取的是 master 分支
当然你也可以直接拉取对应分支,并跟踪远程 dev 分支
git checkout -b dev origin/dev
git branch
应该可以看到 master 分支和 dev 分支
yeahlife@yeah.net 用户这里同理。
我们在 fzbbookmarks@gmail.com 客户端上对项目进行简单的修改操作,来测试提交。
可以看到不能提交修改到 master 保护分支。
切换 fzbbookmarks@gmail.com 用户为 dev 分支,提交修改。
成功提交修改到 dev 分支。
这样我们就利用保护分支实现了对我们代码整体的可控性,避免发生不必要的意外情况。当然还是要开发人员平时多加注意。
这里由于我之前对这个认识有误,一度认为是将所有的ssh key 都布署到项目所属用户下,才导致保护分支不起作用,都布署到这个用户下,那所有的人员不都是管理员了么,再设置分支级别已经不会有效果,这里要注意,要把对应用户的公钥设置在他的账户下面不是统一设置到项目 ssh公钥下,这里记录下来,免得再犯糊涂。
感谢扣扣用户 332724213master@17-sky.cn 的耐心解释,
技术路上,你我相伴,少一些浮躁,多一些耐心,共同进步。