版本控制工具SVN和GIT的区别

SVN(集中式版本控制工具):
    SVN是Subversion的简称,是一个开源的版本控制i系统,支持大多数常见的操作系统。作为一个开源的版本控制系统,SVN管理着随时间改变的数据。SVN是一个统用的系统,可用来管理任何类型的文件,其中包括程序源码。
GIT(分布式版本控制工具):
    GIT是一个免费、开源的分布式版本控制工具,用于敏捷高效地处理任何或大或小的项目。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
区别:
    1.SVN属于集中化的版本控制工具,SVN使用起来有点像是档案仓库的感觉,支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。
       Git是一个分布式版本控制系统,操作命令包括:clone,pull,push,branch ,merge ,push,rebase,Git擅长的是程序代码的版本化管理。
    2.GIT跟SVN一样有自己的集中式版本库或服务器。但GIT更倾向于使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。
    3.GIT把内容按元数据方式存储,而SVN是按文件。
    4.GIT没有一个全局的版本号,而SVN有,这是GIT相比SVN缺少的最大的一个特征。
    5.GIT的内容完整性要优于SVN,GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
GIT优点:
      1.分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题。
      2.在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可。
      3.非常强大的分支管理功能。 
      4.Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
      5.对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。
GIT缺点:权限管理不是很方便,需要安装插件gitolite,配置有点麻烦,或者直接使用gitlab管理。不支持中文,图形界面支持差,使用难度大。不易推广。
SVN优点:
      1.较好的权限管理功能,可以精确控制每个目录的权限。
      2.SVN对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便,比GIT简单。
SVN缺点:
      1.集中式,如果中心服务器出现问题,所有人都不能正常干活,恢复也很麻烦,因为SVN记录的是每次改动的差异,不是完整文件。
      2.分支功能没有GIT强大。
      3.速度没有GIT快,如果有五个分支,是把五个分支的文件全部拷下来。
      4.必须联网才能commit。

猜你喜欢

转载自blog.csdn.net/weixin_44156901/article/details/86418568