一:git
我们用svn和git对比着来说,svn是集中式版本控制系统,而git是分布式版本控制系统。
1、集中式版本控制系统是指版本库集中存放在一个中央服务器中,我们需要在自己电脑上通过连接中央服务器,从而把代码clone到本地,或者把自己电脑上的代码提交到中央服务器,如果中央服务器被炸毁了,那么所有的版本库都没了。在工作中,公司一般都有一个svn服务器,也就是版本控制系统,大家在自己电脑上通过TortoiseSVN客户端连接svn服务器,从而进行相应的版本库的操作。
2、分布式版本控制系统没有所谓的“中央服务器”,每个人的电脑上都可以安装一个版本控制系统,自己写的代码提交到自己电脑上的版本库中;
(1)如果不进行多人协作,自己电脑上的版本库就足够用了。我们在自己电脑上下载并安装git,这个git就是版本控制系统;我们可以通过TortoiseGit客户端连接安装的git版本控制系统,从而进行相应的版本库的操作。
(2)如果进行多人协作,每个人都需要将自己电脑上版本库中的新修改同步到其他人的版本库中,可以有两种方式;第一:将自己的修改直接推送到其他人的版本库中,我不会弄。第二:建立一台充当“中央服务器”的电脑,每个人把自己电脑上版本库和中央服务器建立通信,但这个中央服务器的作用仅仅是用来方便“交换”大家的修改,在大家不相互协作的情况下,没有它大家也一样干活,如果中央服务器有一天被人炸了也没关系,因为我们每个人的电脑上都有一个完整的版本库。现在流行的github(外国的)、gitee(中国的码云)都是开放的中央服务器,公司内部还可以使用gitlab来自己搭建中央服务器。
二:github
Github 是一个基于git实现在线代码托管的仓库,向互联网开放,共有仓库免费,建立私有仓库要收费,因为Github的初衷就是为了大家共享自己的劳动成果。
三:gitee
Gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境,可以建立自己的私有仓库。
四:gitlab
gitlab类似 github,一般用于在企业内搭建git私服,要自己搭环境。