两者都是用git实现代码托管的版本仓库,两者很相似,那它们的区别是?
简介
相比于GitHub,GitLab更适合企业级使用,为企业搭建GitLab软件版本管理服务器。
GitLab:https://about.gitlab.com/
GitHub: https://github.com/
GitLab
利用Ruby on Rail开发的开源应用程序,实现一个自托管的Git项目仓库,可以通过web界面进行访问公开的或者私人项目。
Ruby on Rail是一个使你开发、部署、维护web应用程序变得简单的框架。
GitLab拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,
它非常易于浏览提交过的版本并提供一个文件历史库,它提供一个代码片段功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitHub
是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。
两者区别
相同点
二者都是基于web的Git仓库,在很大程度上GitLab是仿造GitHub来做的,他们都提供了分享开源项目的平台,
为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
- GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库
- GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:
- 允许免费设置仓库权限
- 允许用户选择分享一个project的部分代码
- 允许用户设置project的获取权限,进一步提升安全性
- 可以设置获取到团队整体的改进进度
- 通过innersourcing让不在权限范围内的人访问不到该资源
gitlab安装及使用:
关闭防火墙和selinux,并安装安装依赖的包
1
2
3
4
5systemctl stop firewalld && sy
stemctl disable firewalld
setenforce 0 并修改/etc/selinux/config
yum -y install openssh-server postfix
yum install -y curl policycoreutils-python openssh-server启动positfix和sshd
1
2systemctl enable postfix && systemctl start postfix
systemctl enable sshd && systemctl start sshd下载安装包并安装安装包
1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
打开
/etc/gitlab/gitlab.rb
,将external_url = 'http://git.example.com'
修改为自己的IP地址:http://xxx.xx.xxx.xx
,然后执行下面的命令,对GitLab进行编译。
sudo gitlab-ctl reconfigure
- 登录GitLab
Username: root
Password: 5iveL!fe - GitLab管理
gitlab-ctl start/stop/restart/reconfigure
git相关概念:
- git 是一种版本控制系统,是一个命令,是一种工具
- gitlib 是基于git功能的开发库
- github 是一个基于git实现在线代码托管的仓库,包含一个网站界面,向互联网开放
- gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内搭建git私服
git-ce是社区版,gitlab-ee是企业版,收费版