版本控制和版本控制系统的区别
转载必须声明转载地址http://write.blog.csdn.net/postedit
一、何谓版本控制
它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本
二、为何要使用版本控制系统
1、你是否遇到如下烦恼?
1.不小心删除了自己的项目文档和源代码文件
2.不敢修改自己的源代码文件
3.不知道如何把自己项目文档传递给他人
4.不知道如何把自己的项目分发
5.不断的拷贝和备份
6.文档和源代码管理混乱,无法查找
2、广义的来看待版本控制:平安保险销控会(非软件开发范畴)
三、可供我们选择的版本控制系统
1、VCS 本地版本控制不能粒子提交
3、ClearCase、SVN、Perforce、TFS 集中版本控制支持粒子提交,不支持分布式。
4、Mercurial(水银/水星)、Git 分布式版本控制支持粒子提交,支持分布式。
VSS
是一种版本控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。还提供了还原点使开发人员能够回滚或撤销任何对应用程序的修改。VSS与Visual Studio的充分集成,成为了独立开发人员和小型开发团队所适合的工具。作为版本控制系统,Visual SourceSafe能够:
u 组内合作:在缺省情况下,同一个源文件在某一时间只允许一个用户修改,可防止文件被
u 意外改动或覆盖。
u 版本追踪:对源代码和其他文件进行存储和早期追踪,从而实现早期版本的回滚。
u 跨平台开发
u 模块化代码追踪
CVS
全称(Concurrent Version System)是一款简单易用、功能强大、跨平台的免费版本控制软件,它是一款典型的Server/Client端软件。
CVS功能介绍:
l 代码统一管理,保存所有文件的修改记录。方便查看新增或删除的文件;跟踪修改记录,随意回滚到以前任意版本。
l 完善的冲突解决方案,无需借助其他的文件比较工具和手工的粘贴复制。
l 代码权限管理。可为不同的用户设置不同的权限,提供了相应的功能扩展接口,以便实现个性化功能。
l 支持版本发布和分支功能。
SVN
是一款跨平台版本控制软件,拥有自己的版本资料库,允许用户在不同空间和时间上修改和管理同一组数据,从而使开发进程非常快速。软件产品的所有版本都会被存入库中,避免由于错误影响产品质量。
SVN作为一款通用的版本控制系统,它具有以下功能:
v 大部分CVS功能
v 目录版本化
v 实现版本的复制、删除和重命名
v 自由的版本化数据操作
v 混合追踪
v 文件锁
v 独立进程模式
Git
是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库
经典的Git开发过程:
① 从服务器上克隆数据库(包括代码和版本信息)到单机上。
② 在自己的机器上创建分支,修改代码。
③ 在单机上自己创建的分支上提交代码。
④ 在单机上合并分支。
⑤ 新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
⑥ 生成补丁(patch),把补丁发送给主开发者。
⑦ 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
⑧ 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。