我的编程空间,编程开发者的网络收藏夹
学习永远不晚

svn和git适用范围有什么不同

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

svn和git适用范围有什么不同

本篇内容主要讲解“svn和git适用范围有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“svn和git适用范围有什么不同”吧!

Git是一款开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。svn是一款开源的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

本教程操作环境:Windows7系统、Git2.30.0版、Dell G3电脑。

git是什么

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

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是什么

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

SVN管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。

SVN 属于 集中式版本控制系统。

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

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

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

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

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

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

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

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

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

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

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

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

svn和git适用范围的不同

  • 适用对象不同。

    Git适用于参与开源项目的开发者。他们由于水平高,更在乎的是效率而不是易用性。SVN则不同,它适合普通的公司开发团队。使用起来更加容易。

  • 使用的场合不同。

    Git适用于通过Internet,有多个开发角色的单个项目开发,SVN适合企业内部由项目经理统一协调的多个并行项目的开发。

  • 权限管理策略不同。

    Git没有严格的权限管理控制,只要有帐号,就可以导出、导入代码,甚至执行回退操作。SVN则有严格的权限管理,可以按组、按个人进行针对某个子目录的权限控制。区分读、写权限。更严格的,不支持回退操作。保证代码永远可以追踪。

  • 分支(branch)的使用范围不一样。

    Git中,你只能针对整个仓库作branch,而且一旦删除,便无法恢复。而SVN中,branch可以针对任何子目录,它本质上是一个拷贝操作。所以,可以建立非常多、层次性的branch,并且,在不需要时将其删除,而以后需要时只要checkout老的SVN版本就可以了。

  • 基于第三点,Git适用于单纯的软件项目,典型的就是一些开源项目,比如Linux内核、busybox等。相反,SVN擅长多项目管理。

    比如,你可以在一个SVN仓库中存放一个手机项目的bsp/设计文档/文件系统/应用程序/自动化编译脚本,或者在一个SVN中存放5款手机项目的文件系统。git中必须建立n(项目数)*m(组件数)个仓库。SVN中只需要最多n或者m个就可以了。

  • Git使用128位ID作为版本号,而且checkout时要注明是哪个branch;而SVN使用一个递增的序列号作为全局唯一的版本号,更加简明易懂。虽然可以使用gittag来建立一些文字化的别名,但是毕竟那只是针对特殊版本。

  • 可跟踪性

    git的典型开发过程为:建立分支,进行开发,提交到本地master,删除分支。这样做的后果是以前的修改细节会丢失。

    而在SVN下做同样的事情,不会丢失任何细节。

  • 局部更新,局部还原。

    SVN由于是在每个文件夹建立一个.svn文件夹来实现管理,所以可以很简单实现局部更新或者还原。假如你只希望更新某些部分,则svn可以很好实现。同时代码写错了,同时可以很好实现局部还原,当然git也可以通过历史版本还原,但是无法简单地实现局部还原。

到此,相信大家对“svn和git适用范围有什么不同”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

svn和git适用范围有什么不同

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

下载Word文档

猜你喜欢

svn和git适用范围有什么不同

本篇内容主要讲解“svn和git适用范围有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“svn和git适用范围有什么不同”吧!Git是一款开源的分布式版本控制系统,用以有效、高速的处理从
2023-06-21

git本地仓库和远程仓库有什么不同

本地仓库和远程仓库之间有以下几个主要区别:1. 存储位置:本地仓库是存储在本地开发者的计算机上,而远程仓库是存储在网络上的服务器上。2. 访问权限:本地仓库只有当前开发者可以访问和修改,而远程仓库可以被多个开发者同时访问和修改。3. 分布式
2023-10-20

python值传递和引用传递有什么不同

在Python中,变量的传递方式既不是纯粹的值传递,也不是纯粹的引用传递,而是一种称为"对象的引用传递"的方式。值传递是指在函数调用时,将实际参数的值复制给形式参数,函数中对形式参数的修改不会影响实际参数的值。而引用传递是指在函数调用时,将
2023-09-23

轻量应用服务器和云服务器有什么不同

轻量应用服务器和云服务器不同点有:1、轻量应用服务器有较小的硬件配置和资源消耗,而云服务器则拥有更大的硬件配置和资源;2、云服务器提供更多的功能和服务,而轻量应用服务器没有;3、轻量应用服务器通常更简单易用,而云服务器则需要更多的技术知识和
2023-07-27

请描述PHP中的PDO和MySQLi扩展有何不同?(PDO和MySQLi在PHP中各自的特点和适用场景是什么?)

PDO和MySQLi是PHP中用于连接MySQL数据库的扩展。PDO提供了跨平台的数据库抽象,而MySQLi则针对MySQL进行了优化。PDO的优势在于数据库无关性、统一接口、预处理语句和事务支持。缺点是缺少某些MySQL特性和性能开销。MySQLi的优势在于原生支持、对MySQL特性的全面支持、高级API和更低的开销。缺点是数据库依赖性和陡峭的学习曲线。选择哪种扩展取决于应用程序的特定需求,例如跨平台可移植性、安全性、性能或对MySQL特性的支持。
请描述PHP中的PDO和MySQLi扩展有何不同?(PDO和MySQLi在PHP中各自的特点和适用场景是什么?)
2024-04-02

租用香港服务器供应商和代理商有什么不同

租用香港服务器供应商和代理商之间的主要区别在于他们所提供的服务和服务模式。服务内容:香港服务器供应商通常拥有自己的服务器设备和数据中心,可以提供完整的服务器租用服务,包括硬件设备、网络连接、数据存储、安全防护等。而代理商通常是与服务器供应商
租用香港服务器供应商和代理商有什么不同
2024-04-09

什么是Java程序的主类,应用程序和小程序的主类有何不同

Java主类是含有main函数的类,是Java应用程序的入口点。在Java应用程序中,这个类是指包含main()方法的类。在Java小程序中,这个主类是一个继承子系统类JApplet或Applet的子类。
什么是Java程序的主类,应用程序和小程序的主类有何不同
2023-10-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录