Git、GitHub和GitLab的区别

Git

Git、GitHub和GitLab的区别_第1张图片

Git官网

Git 是一个分布式的版本控制系统。

  • 版本控制系统是一种用于记录一个或多个文件内容变化,方便查阅特定版本修订情况的系统。

没有使用版本控制系统之前,如果需要记录同一份文件不同版本的修改,可能会以“file_v1”、“file_v2”、“file_v3”等命名方式来保存不同时刻对文件的新增、修改,删除等操作。

  •  分布式系统可以把代码仓库完整地镜像下来,相当于每个人的电脑都是一个完整的版本库。

集中式版本控制系统:版本库是集中存放在中央服务器的,工作的时候,用的是自己的电脑,所以,我们首先需要从中央服务器上拉取最新的版本,然后开始工作,等工作完了,再把自己的工作提交到中央服务器。(借用廖雪峰老师的一个比喻,中央服务器好比是一个图书馆,如果要改其中的一本书,必须先要从图书馆里把书借出来,然后更改,改完之后,再放回图书馆。)

Git、GitHub和GitLab的区别_第2张图片

分布式版本控制系统:没有中央服务器的概念,本地提取的不只是最新的文件,而是把代码仓库完整地镜像下来,相当于每个人的电脑都是一个完整的版本库。这样的话,任何一处协同工作的服务器出现故障,都可以用任何一个镜像出来的本地仓库恢复。即便在网络环境比较差的情况下也不用担心,因为版本库就在本地电脑上。

Git、GitHub和GitLab的区别_第3张图片

集中式和分布式版本控制系统的区别:

  • 集中式版本控制系统的历史仓库是存在于中央仓库,每次对比与提交代码都必须连接到中央仓库;分布式版本控制系统的本地仓库包含代码库和历史库,即本地就可以查看版本历史。

GitHub

Git、GitHub和GitLab的区别_第4张图片

GitHub官网

GitHub是一个面向开源及私有软件项目的托管平台,只支持git作为唯一的版本库格式进行托管。

GitLab

Git、GitHub和GitLab的区别_第5张图片

GitLab官网

GitLab 是一个用于仓库管理系统的开源项目,其使用MIT许可证且具有wiki和issue跟踪功能,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。

GitHub和GitLab的共同点:

  • GitHub和GitLlab两个都是基于Web的Git远程仓库,都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

GitHub和GitLab的不同点:

  • GitHub同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的;GitLab可以创建私人的免费仓库。从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。

参考:Git、GitHub、GitLab三者之间的联系以及区别 - 流光瞬息 - 博客园

你可能感兴趣的:(git,github)