git是一个分布式版本控制系统 ,采用基于内容寻址 (区别于采用路径寻址)的方式。git对于项目历史每次都是保存完整的项目快照,因为这样在找版本历史的时候比较快,比较快说的是相对于那些保存补丁的版本控制系统,寻找版本历史需要去用这些补丁去慢慢回溯的比起直接保存完整项目快照的就会慢。git存储完整的项目快照是逻辑 上的,在物理 存储上它是会复用那些代码没有改变的代码的,这样可以节省存储空间。
github跟gitlab都是借助git这个工具的平台,github是全球性开源平台,但是也可以设置仓库私有化;gitlab更容易私有化部署,所以通常用在企业内部。