Git
分布式版本控制软件,支持离线开发,离线Repositor,强大的分支功能,适合多个独立开发者协作,速度快。
git在使用的时候,当用户从远端GIT仓库下载一个工程(project)时,这个工程的所有文件,包括版本历史,文件改动都会下载下来,这时候笨的GIT就演变成了一个服务器,所有提交(check-in)提出(check-out)都会在这个本地服务器上执行,当确定一项修改之后,可以再和远端仓库进行合并和同步(merge),所以git的安装和配置无论在本机还是服务器上都是完全一样的。
GIT的优点:
- 更顺畅的工作流程,开发过程中,完全可以离线操作。
- 快速,Git分布式架构使得本地仓库包含所有的历史版本信息,你可以在不同的版本之间快速切换。
- 弹性的本地分支,在SVN下,建立一个分治需要把源代码复制到另外一个文件夹,而在Git下,创建分支的代价是非常小的,只需一条命令。
- 仓库目录结构简洁,用Git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净。
- 内容按原数据方式存储,所有的版本信息都位于.git目录下。
- 完整性好,更易于协作开发
- 用户群大,现在已经有成千上万个开源项目采用Git来做项目管理,github上更是有无数个代码仓库。
SVN和CVS
- SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
- CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,大多数软件开发公司都使用SVN替代了CVS。
SVN和CVS都是集中式的版本控制系统
什么是集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活,再把自己的干完的结果推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。