1、git
git 是一个版本控制系统。 版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系 统。
早期出现的版本控制系统有:svn、cvs 等,它们是集中式版本控制系统,都有一个单一的集 中管理的服务器,保存所有文件的修订版本,而协同合作的开发人员都通过客户端连接到这台服 务器,取出最新的文件或者提交更新。
而我们的主角 git 是分布式版本控制系统。git 已经成为越来越多开发者的青睐,因为分布 式的优势是很显著的
2、集中式和分布式版本控制系统的区别:
2.1)分布式版本控制系统下的本地仓库包含代码库还有历史库,在本地就可以查看版本历 史
2.2)而集中式版本控制系统下的历史仓库是存在于中央仓库,每次对比与提交代码都必须 连接到中央仓库
2.3)多人开发时,如果充当中央仓库的 git 仓库挂掉了,任何一个开发者都可以随时创建 一个新的中央仓库然后同步就可以恢复中央仓库
3、github 和 gitlab
github 和 gitlab 都是基于 web 的 git 仓库,使用起来二者差不多,它们都提供了分享开 源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场 所。
github 作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管 平台,github 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。
gitlab 解决了这个问题,你可以在上面创建私人的免费仓库。 gitlab 让开发团队对他们的代码仓库拥有更多的控制,相比较 github
gitlab 特色
3.1)允许免费设置仓库权限;
3.2) 允许用户选择分享一个 project 的部分代码;
3.3) 允许用户设置 project 的获取权限,进一步提升安全性;
3.4) 可以设置获取到团队整体的改进进度;
3.5) 通过 innersourcing 让不在权限范围内的人访问不到该资源;
所以,从代码的私有性上来看,gitlab 是一个更好的选择。但是对于开源项目而言,github 依然是代码托管的首选