Gitlab介绍
GitLab ,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab 要求服务器端采用 Gitolite 搭建(为了方便安装,现已经用gitlab-shell代替Gitolite)。
虽然GitLab是一个从头到位模仿Github的家伙,但是我们确实有这样的需求,并且他还是开源的。相比Gtihub来说可以减少很多成本。Github本身是有企业版可以在公司环境搭建的,但是价钱不菲,看看Github Enterprise定价就知道了,最小的也要一年5000美金,对于小团队小公司是一笔不小的投入。有了Gitlab可以几乎不需投入就能轻松有一套内部的Git管理平台。
Gitlab主要功能
- 仓库管理
在创建仓库的时候可以选择创建到群组空间下(类似于Github的Orgnization);也可以到全局空间下,没有前缀;或者个人空间下,默认是私仓,可以选择公开。 -
公仓和私仓 (权限分配)
每个仓库的权限可以单独分配,只需要设置为Master就可以对仓库有完全的操控权,如果需要过库到别人名下也是支持的。配置允许默认创建公仓还是私仓,自己创建的私仓只能自己和管理员看见。 -
Github工作流 (不清楚Github Flow的可以点此了解)
Github工作流主要是使用Pull Requets的功能完成,没个人去提交自己的仓库,然后再去pull request来完成协作,gitlab也支持pull request。 -
团队和群组管理
可以建立一个团队(比如公司的某个部门),把用户加进来,这些用户默认就有了访问团队下仓库的给定权限。群组和Github的Orgnizition类似,但又不完全一样。我一把把群组当作项目来用。注意:团队是没有仓库空间的,群组是有的。