Git与SVN版本控制系统
关于版本控制
什么是版本控制?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
Git:分布式版本控制体统,
是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git的功能特性:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到自己电脑上。
![](https://images2015.cnblogs.com/blog/1028651/201609/1028651-20160923110039059-1763865096.png)
2、在自己的电脑上根据不同的开发目的,创建分支,修改增删代码。
3、在自己的电脑里,自己创建的Git分支上提交代码,提交到自己本地的Git仓库;
![](https://images2015.cnblogs.com/blog/1028651/201609/1028651-20160923110122934-1755779500.png)
4、在电脑上合并分支。
![](https://images2015.cnblogs.com/blog/1028651/201609/1028651-20160923110325106-323016535.png)
5、推送到自己的服务器,(没有完成,不想让别人知道的前提下!)
6、推送到公用服务器上,(已完成!)
![](https://images2015.cnblogs.com/blog/1028651/201609/1028651-20160923110157074-1324474056.png)
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
![](https://images2015.cnblogs.com/blog/1028651/201609/1028651-20160923110257871-506157453.png)
《每天修改的时候记得在主服务器上获取一下最新的版本,以防冲突》
优点:
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
学习周期相对而言比较长。
不符合常规思维。
较复杂
安装包链接:http://pan.baidu.com/s/1nvJFxrV 密码:zav2
SVN是集中式版本控制系统,
说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
集中式管理的工作流程如下图:
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、最后,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。
优点:
1、管理方便,逻辑明确,符合一般人思维习惯。
2、易于管理,集中式服务器更能保证安全性。
3、适合开发人数不多的项目开发。
4、相对简单,好操作。
缺点:
1、服务器压力太大,数据库容量暴增。
2、如果不能连接到服务器上,基本上不可以工作,
3、如果服务器不能连接上,就不能提交,还原,对比。
3、不适合开源开发。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
PS:昨天晚上研究了大半夜的成果!
每天能进步一小步,将来进步一大步!
每天的努力都是为了以后更好的生活!