1.svn和github的区别
svn:集成式:我们在多人开发一个项目的时候我们需要准备一个中央服务器,然后每一个人都要通过这个中央服务器进行代码的一个获取和代码的一个提交,所以说这个所有的版本控制和版本库都存到了我们这个中央服务器上,我们本地是没有的,这样的话呢:
我们只能通过连接这个中央服务器才能进行开发.
如果连接不上这个中央服务器的话,那就没办法进行开发,若要开发的话我们就没办法进入版本库,没办法进行保存,互相也没办法进行一个交流,因为每个人交流都是通过这个中央服务器来实现的..在这个时候,你没有连接之后,你开发的所有代码其实都是本地的,这样的话呢就会有一个风险,就是一个本地的文件和代码呢让你不小心误删掉了,这个时候呢就没办法还原了,因为本地文件一但删了就没办法在得到了.所以说呢有很大的风险..
同时中央服务器也有风险.因为这个东西也不是说里面这个东西不会丢失的,因此,我们再公司的时候要经常备份我们这个中央服务器的这个数据,一但硬盘数据丢失就麻烦了,整个公司的项目搞不好就都丢了.
所以说这个svn传统的方式有很多弊端
git:分布式的:就是说我们每台电脑,每个开发人员,他们的电脑当中的都有一个版本控制库,像svn是集中在一个服务器上的,而我们这个git呢是每一个电脑都有.
既然每台电脑都有,那么就是说我们每一个都可以在自己的电脑进行一个版本的操作,包括提交和获取,获取是还原等等一系列的操作都是ok的,而且也不是担心丢失的风险.假如说第一台电脑丢失了数据,但是我们发现每台的版本控制都是一样(如果是开发同一个项目),那我们就可以直接克隆一份就可以了,所以说想git开发的时候基本上不用担心这个版本库丢失的问题
我们不用连接中央服务器就可以在任意时候进行代码开发,比如说在公司,在家,在地铁上等等,因为不需要联网,本地就有这个版本库,非常方便.
多人协作开发:github https:gituhb.com
假如在多人写作的时候,我想第二个人看一下第一个人代码更新的情况,或者是第一个人想看其他人的一个代码更新情况,那么这个时候就让他们的电脑之间能够进行连接,只要连接就能互相的取得一个最新的代码,进行多人协作,.但同时也存在弊端:如果两个人分别在异地,这个时候两台电脑就没办法连接到一起..
若想解决这个问题,就考虑到了github网站,github作用是:充当远程仓库的作用,在不同的地点都可以访问到,只要可以联网就可以开启github..在开发项目的时候,我们可以先提交到github上,然后另外的人就从github上进行一个获取,这样的话呢就可以进行多人的协作开发,所以github就充当着一个中转站,大家都可以从这个github这个远程仓库上获取到一个最新的一个开发的版本.
当git做分支处理的时候简直就是吊炸天,要比svn要好的多.