1.git
git是一个开源的分布式版本控制系统,用以快速高效的处理项目从很小到非常大的项目的版本控制的所有事情。 另外官网上的介绍还有,git性能卓越,超过甚至颠覆一些其他的产品如cvs,perfamce等,git有非常方便的本地分支,多个工作流等。
2.git和svn的比较
git和svn是目前最常用的团队协作的版本控制系系统。下面我们从版本控制系统的 以下的1,2,3也正是版本控制的演进历史:
①本地版本控制系统:(解决个人的版本管理) 很多人的选择的版本控制方法是将文件复制到另一个目录(可能是一个时间标记的目录,如果他们是聪明)。这种做法是很常见的,因为它是如此简单,但是很容易出错,比如很容易忘了你是哪个目录,不小心写了错误的文件等等。 为了解决这个问题,程序员早就开发了VCSS具有该保留所有文件的更改版本控制下的一个简单的数据库。
但是这种版本控制会丢失。毕竟是本地的。
②集中式版本控制:(svn是这种形式)
③分布式版本控制:(git是这种形式,GIT跟SVN一样有自己的集中式版本库或服务器)
这是在分布式版本控制系统(DVCSs)步在DVCS(如GIT中),客户端不只是检查出文件的最新快照:他们完全镜像的存储库(本地有仓库,这就是分布式的意义)。因此,如果出现上述问题,任何客户机库的可复制备份到服务器,以恢复它。每一个克隆确实是所有数据的完整备份(除了没有push的代码,这个也是理所当然的)。
那么针对于本地版本控制系统,和集中式版本控制系统的最严重的缺陷,就被分布式版本控制系统解决了。
另外类似git这样的分布式版本管理系统,能更好的去处理你在多个远程仓库上的工作。这样是你可以同时去和多个团队去写作开发。这允许您设置几种类型的工作流,这些集中式版本控制系统是做不到的。比如说分层模型。
对比结果:
1.git是分布式的scm,svn是集中式的。(最核心)
2.git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
3.git可离线完成大部分操作,svn则不能。
4.git有着更优雅的分支和合并实现。
5.git有着更强的撤销修改和修改历史版本的能力
6.git速度更快,效率更高。
这篇文章也不错 www.cnblogs.com/kevingrace/…