首页 > 代码库 > 聊聊git和svn

聊聊git和svn

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

上面这段话是git的官方解释:git是一个免费开源的分布式版本控制系统,它被设计用来高效快速处理从小到大的工程。

先来聊聊版本控制。

https://git-scm.com/book/zh/v2

这个网站讲的版本控制很明白了。

1.所以首先来说,git和svn是两种不同类型的版本控制系统。git是分布式的!svn是集中式的!每一个git开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项 目分支等操作,等网络再次连接上Push到Server端。

2.Git把内容按元数据方式存储,而SVN是按文件:因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大。

3.Git没有一个全局版本号,而SVN有:目前为止这是跟SVN相比Git缺少的最大的一个特征。

4.SVN必须先Update才能Commit,忘记了合并时就会出现一些错误,git还是比较少的出现这种情况。

5.Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以。

6.Git的内容的完整性要优于SVN: Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

7.克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作。而Git只是获取文件的每个版本的 元素,然后只载入主要的分支(master)。

8.分支(Branch)在SVN,分支是一个完整的目录。且这个目录拥有完整的实际文件。而 Git,每个工作成员可以任意在自己的本地版本库开啟无限个分支。

总结:git和svn没有好坏之分,它们只是不一样而已。

如果你对‘离线代码控制’有需求,git是你的选择;如果你想把你的代码集中控制,svn则是你的不二之选。

 

 

聊聊git和svn