说起git自然想到SVN,我刚接触到的版本控制工具是SVN,SVN是集中式版本控制系统,版本库是集中放在中央服务器的,干活的时候,先要从中央服务器哪里得到最新的版本,干完活后,需要把自己做完的活推送到中央服务器。中央服务器就好比是一个图库,你要改一本书,必须先从图库借出来,然后回到家自己改,改完了,再放回图库。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就耽误事了。
Git是分布式版本控制系统,它没有中央服务器的,每个人的电脑就是一个完整的版本库,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了