iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SVN与Git的差异有哪些
  • 616
分享到

SVN与Git的差异有哪些

2023-06-05 01:06:19 616人浏览 安东尼
摘要

这篇文章主要讲解了“SVN与git的差异有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SVN与Git的差异有哪些”吧!SVN与Git的差异 Subversion属于集中式的版本控制系统

这篇文章主要讲解了“SVN与git的差异有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SVN与Git的差异有哪些”吧!

SVN与Git的差异

Subversion属于集中式的版本控制系统

集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

Subversion的特点概括起来主要由以下几条:

每个版本库有唯一URL(官方地址),每个用户都从这个地址获取代码和数据。

获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据。

提交必须有网络连接(非本地版本库)。

提交需要授权,如果没有写权限,提交会失败。

提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先6.更新再提交”… 诸如此类。

冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。

好处:每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。

缺点:中央服务器的单点故障。

若是宕机一小时,那么在这一小时内,谁都无法提交更新、还原、对比等,也就无法协同工作。如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话,还会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录,被客户端提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人提取出来。

Subversion原理上只关心文件内容的具体差异。每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。

Git属于分布式的版本控制系统

Git记录版本历史只关心文件数据的整体是否发生变化。Git 不保存文件内容前后变化的差异数据。

实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一连接。

在分布式版本控制系统中,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。

另外,因为Git在本地磁盘上就保存着所有有关当前项目的历史更新,并且Git中的绝大多数操作都只需要访问本地文件和资源,不用连网,所以处理起来速度飞快。用SVN的话,没有网络或者断开VPN你就无法做任何事情。但用Git的话,就算你在飞机或者火车上,都可以非常愉快地频繁提交更新,等到了有网络的时候再上传到远程的镜像仓库。换作其他版本控制系统,这么做几乎不可能,抑或是非常麻烦。

Git具有以下特点:

Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。

Git的每一次提取操作,实际上都是一次对代码仓库的完整备份。

提交完全在本地完成,无须别人给你授权,你的版本库你作主,并且提交总是会成功。

甚至基于旧版本的改动也可以成功提交,提交会基于旧的版本创建一个新的分支。

Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。

冲突解决不再像是SVN一样的提交竞赛,而是在需要的时候才进行合并和冲突解决。

Git 也可以模拟集中式的工作模式。

Git版本库统一放在服务器中。

可以为 Git 版本库进行授权:谁能创建版本库,谁能向版本库PUSH,谁能够读取(克隆)版本库。

团队的成员先将服务器的版本库克隆到本地;并经常的从服务器的版本库拉(PULL)最新的更新。

团队的成员将自己的改动推(PUSH)到服务器的版本库中,当其他人和版本库同步(PULL)时,会自动获取改变。

Git 的集中式工作模式非常灵活。

你完全可以在脱离Git服务器所在网络的情况下,如出差时,照常使用代码库,你只需要在能够接入Git服务器所在网络时,PULL和PUSH即可完成和服务器同步以及提交。

Git提供 rebase 命令,可以让你的改动看起来是基于最新的代码实现的改动。

Git有更多的工作模式可以选择,远非 Subversion可比。

感谢各位的阅读,以上就是“SVN与Git的差异有哪些”的内容了,经过本文的学习后,相信大家对SVN与Git的差异有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: SVN与Git的差异有哪些

本文链接: https://www.lsjlt.com/news/240704.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SVN与Git的差异有哪些
    这篇文章主要讲解了“SVN与Git的差异有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SVN与Git的差异有哪些”吧!SVN与Git的差异 Subversion属于集中式的版本控制系统...
    99+
    2023-06-05
  • MySQL与Oracle差异有哪些
    这篇文章主要为大家展示了“MySQL与Oracle差异有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL与Oracle差异有哪些”这篇文章吧。其它编...
    99+
    2024-04-02
  • SVN与Git版本控制的优缺点差异全面分析
    目录一、集中式vs分布式1.Subversion属于集中式的版本控制系统Subversion的特点概括起来主要由以下几条:2.Git属于分布式的版本控制系统Git具有以下特点:二、版...
    99+
    2024-04-02
  • Python中defaultdict与dict有哪些差异
    这篇文章主要为大家展示了“Python中defaultdict与dict有哪些差异”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中defaultdict与dict有哪些差异”这篇文章...
    99+
    2023-06-25
  • 使用Git和SVN的区别有哪些
    这篇文章主要介绍“使用Git和SVN的区别有哪些”,在日常操作中,相信很多人在使用Git和SVN的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用Git和SVN的...
    99+
    2024-04-02
  • MySQL与Oracle SQL语言差异有哪些
    小编给大家分享一下MySQL与Oracle SQL语言差异有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据类型编号ORA...
    99+
    2024-04-02
  • ASP与Django:数据类型的差异有哪些?
    ASP和Django是两个常用的Web开发框架,它们都有各自的优缺点。在使用这两个框架时,一个重要的问题是它们的数据类型有哪些差异。本文将介绍ASP和Django的数据类型差异,并提供一些示例代码。 一、基本数据类型 ASP和Django...
    99+
    2023-07-11
    django 数据类型 打包
  • SQLite与SQL差异的常见问题有哪些
    这篇文章主要介绍了SQLite与SQL差异的常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、常见问题汇总1 TOP这是一个大...
    99+
    2024-04-02
  • svn与vss的区别有哪些
    这篇“svn与vss的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“svn与vss的区别有哪些”文章吧。区别:1、...
    99+
    2023-07-02
  • svn与cvs的区别有哪些
    这篇文章主要介绍“svn与cvs的区别有哪些”,在日常操作中,相信很多人在svn与cvs的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”svn与cvs的区别有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-02
  • Java和C++的差异有哪些
    这篇文章主要介绍“Java和C++的差异有哪些”,在日常操作中,相信很多人在Java和C++的差异有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java和C++的差异有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • Java和C++的基本差异有哪些
    本篇内容介绍了“Java和C++的基本差异有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们知道,Java一开始采用C++的语法格式,...
    99+
    2023-06-03
  • Pipeline脚本式与声明式语法差异有哪些
    这篇文章主要讲解了“Pipeline脚本式与声明式语法差异有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pipeline脚本式与声明式语法差异有哪些”...
    99+
    2024-04-02
  • 云服务器与物理服务器有哪些差异
    云服务器和物理服务器的差异:1.云服务器指在集群中虚拟出多个类似独立服务器的部分,而独立服务器是拥有整台服务器的所有软硬件资源,自行分配及实行多种网络功能服务。2. 云服务器遇到故障可以自动迁移,而物理服务器不能迁移。3. 云服务器可以整合...
    99+
    2024-04-02
  • Angular之constructor和ngOnInit差异有哪些
    小编给大家分享一下Angular之constructor和ngOnInit差异有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别constructor是ES6引入类的概念后新出现的东...
    99+
    2024-04-02
  • python协程和线程的差异有哪些
    小编给大家分享一下python协程和线程的差异有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python是什么意思Python是一种跨平台的、具有解释性、编...
    99+
    2023-06-15
  • 网站优化的行业差异有哪些
    这篇文章主要讲解了“网站优化的行业差异有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“网站优化的行业差异有哪些”吧!一、是否合法一般来说,合法与不合法的...
    99+
    2024-04-02
  • 从python2.7和python3.0的语法差异有哪些
    本篇内容介绍了“从python2.7和python3.0的语法差异有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、基本语法pytho...
    99+
    2023-06-04
  • git与tfs的区别有哪些
    本篇内容介绍了“git与tfs的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!git与tfs的区别:1、tfs是应用程序生命周期管...
    99+
    2023-06-26
  • PHP、Python、 Ruby三大语言的差异有哪些
    这篇文章主要为大家展示了“PHP、Python、 Ruby三大语言的差异有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP、Python、 Ruby三大语言的差异有哪些”这篇文章吧。图1...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作