使用linux系统做一个属于自己的代码仓库3群组构建理解群组vscode链接到gitlab新建gitlab工程结语群组构建上一节我们已经注册了管理员张三和打工仔李四的账号下面我们把这两个人拉到一个组里去在登录界面找到创建群组然后我们创建一个主目录工程比如叫他Boat设置完成之后点击创建群组创建完成后点开群组的标签就可以看到我们刚刚创建的组。接下来在创建一个组让他在刚才组的层级下面子组也创建好了接下来我们来拉人头因为组本身就是我们创建的所以我们肯定是不需要拉自己进来那就拉个李四吧。首先在群组页面进入到想让李四参与的组在左侧找到管理-成员在跳转到的页面里找到邀请成员点击它然后添加李四进去这里可以一次性添加多个成员哦~添加完成后设置成员的权限如果是一次添加多个成员那么所有成员的权限都是一样的至于说这些权限意味着什么所有者权限最高一般给到项目的创建者维护者它实际上是管理者拥有管理员权限开发者一般给到负责写代码改代码的普通打工仔报告者只有权限读代码完全不能够修改访客只能看到最外层的结构完全看不到代码总之一句话自下而上是权限越来越小。这样一来我们的群组就创建好了需要注意的是打工人李四虽然不在Boat这个大的群里但是他在里面的boatControl里因此他是能够看到Boat的但是他无法访问除了Boat群组内的boatControl之外的其他Boart群组。我们登录李四的账号进入Boat群看看看到了吗这个管理标签可是没有成员选项的哦但如果进入到boatControl就可以看到成员选项了当然我们还可以用另一种方式验证一下登录张三的账号分别在boat和boatControl两个位置点开成员选项看到了吧boat组确实没有打工仔李四在哦~既然张三给李四拉倒子组以后李四能够看到所在子组的完整的外层结构那如果我们张三再开一个组这个组压根不带李四玩李四那里还能看到外层结构吗可怜的打工仔看都看不到了理解群组忙碌了这么半天相信大家已经做好自己的群组了但是肯定会有小伙伴产生这样的疑问做这个群组有什么意义呢实际上这样做的好处是组内的成员可以查看组内的代码但是对于组外的项目则没有权限访问这种思路是标准的代码隔离同时也可以避免代码泄露的风险。举个例子来说张三作为中层领导可能负责多个部门的业务比如即负责算法开发又负责网页开发但是李四就只负责算法开发李四不应该有权限看到张三的除算法开发外其他工程的代码。实际上有了这个设定以后我们再去构建工程就必须选定工程暴露给哪个组非组内的成员压根没机会窥见工程的容貌。在这里提醒大家一句尽量避免用超级管理员账号来做以上的操作因为权限管理一旦混乱造成的影响可能是很恶劣的。至于怎么构件工程马上就要说到了~vscode链接到gitlab本节开始之前先交代一个事情1接下来我们首先要找到windows的ssh秘钥。在命令行输入ssh-keygen-trsa-b4096-C邮箱xxxx.com首次使用这个指令命令行会让我们输入一个yes或no选择yes。如果是已经有了ssh秘钥命令行会提示我们是否覆盖之前的秘钥建议有秘钥就不要重新生成了哈出现这个界面就是秘钥已经生成完成了但是我们还看不懂。接下来进入此电脑在C盘中找到用户或users找到本机正在登录的用户再进入.ssh文件夹找到id_rsa.pub用记事本打开就好小提示当前登录用户可以通过在users文件夹下的子文件夹修改时间进行判断修改时间最近的就是当前登录的账号将这个文件的所有内容复制下来来到张三的gitlab界面点击头像进入偏好设置进入之后按图找到ssh秘钥在打开的页面中点击添加秘钥然后赋值密钥文件的全部内容粘贴进去添加之后页面会发生变化这个是可以无限制添加秘钥的如果还要添加更多直接点击添加就好。ssh秘钥相当于本电脑的唯一通行证将windows的秘钥填入gitlab中就相当于gitlab认识windows电脑并允许跟windows电脑互动了感兴趣的小伙伴也可以自己试试如何在Ubuntu下制作自己的秘钥。配置完成后我们测试下ssh链接本地开启一个命令行窗口然后输入ssh -T git192.168具体的网段没有问题新建gitlab工程接下来就到了重头戏了我们用张三创建一个项目。在首页的左侧项目栏中点击项目然后点击新建项目然后点击新建空白项目注意这几个位置的内容如果新建项目之前我们没有创建任何的群组那么这里的页面会指引我们先创建组。群组的存在还有另外一个功能它就是电脑上的文件夹。使用电脑时我们当然可以将所有的文件都无差别的堆到电脑的根目录里但是这样一定是非常混乱的因此把不同的文件归类到不同的文件夹就很有必要。我们只以张三的视角来看它创建的群组完全就是例子中的文件夹极大的解决代码存放混乱的问题。至于权限那则是张三分配到下级用户的下级用户也能在自己的权限内体验到张三将各个工程分门别类带来的便利。类似于Ubuntu系统的普通用户和root用户各用户都共享了完全相同的目录结构只是有无权限查看内容的区别。结语本节就聊到这里了本来打算一口气讲完代码提交的但还是被篇幅限制了。没关系下一篇已经在路上了感兴趣的小伙伴快快实操起来~此前的讲解都来自于原生的Ubuntu做的gitlab仓库原本是用https协议做的本地到gitlab的连接但是这样处理起来比较麻烦最终还是回归到了ssh协议也因此代码仓库从原生Ubuntu换成了虚拟机。这当然不影响实际操作只是后面附带的图片管理员名字可能和文字对不上不过没关系图片仅供参考就好 ↩︎