iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >svn和git适用范围有什么不同
  • 212
分享到

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

2023-06-21 21:06:34 212人浏览 泡泡鱼
摘要

本篇内容主要讲解“svn和git适用范围有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“svn和git适用范围有什么不同”吧!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适用范围有什么不同”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: svn和git适用范围有什么不同

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

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

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

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

下载Word文档
猜你喜欢
  • svn和git适用范围有什么不同
    本篇内容主要讲解“svn和git适用范围有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“svn和git适用范围有什么不同”吧!Git是一款开源的分布式版本控制系统,用以有效、高速的处理从...
    99+
    2023-06-21
  • javascript中的变量范围有什么不同
    本篇内容介绍了“javascript中的变量范围有什么不同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • git和svn有什么区别
    这篇文章主要介绍了git和svn有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、SVN是集中化的版本控制系统,而Git是分布式版本控制系统;2、SVN是按照...
    99+
    2023-06-21
  • mysql中Memory的适用范围是什么
    今天就跟大家聊聊有关mysql中Memory的适用范围是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.Memory适用范围将数据存在内存,为了提高数据的访问速度,每一个表实际...
    99+
    2023-06-14
  • SpringMVC适配器模式作用范围是什么
    这篇文章主要介绍“SpringMVC适配器模式作用范围是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC适配器模式作用范围是什么”文章能帮助大家解决问题。HandlerAdapt...
    99+
    2023-07-06
  • git本地仓库和远程仓库有什么不同
    本地仓库和远程仓库之间有以下几个主要区别:1. 存储位置:本地仓库是存储在本地开发者的计算机上,而远程仓库是存储在网络上的服务器上。...
    99+
    2023-10-20
    git
  • C++和Python有什么相同和不同
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • RabbitMQ和Kafka有什么不同
    这篇文章主要讲解了“RabbitMQ和Kafka有什么不同”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RabbitMQ和Kafka有什么不同”吧! # ...
    99+
    2024-04-02
  • DevOps和SRE有什么不同
    一、概念不同 DevOps是一种将开发和运维团队紧密集成在一起的实践方法,旨在提高软件开发和交付的效率和质量。DevOps强调自动化、持续集成和部署、监控和反馈等方面,以实现快速、可靠和可重复的软件开发和交付。 SRE(Site Relia...
    99+
    2023-10-29
    有什么不同 DevOps SRE
  • HashMap和Hashtable有什么不同
    HashMap和Hashtable有什么不同,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。线程安全两者最主要的区别在于Hashtable是线程安全,而HashM...
    99+
    2023-06-19
  • ajax和javascript有什么不同
    这篇文章给大家介绍ajax和javascript有什么不同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScript可以...
    99+
    2023-06-14
  • Java 和 JavaScript 有什么不同?
    Java 和 JavaScript 是两种编程语言,它们有着不同的用途和特点。本文将深入探讨 Java 和 JavaScript 的不同之处,帮助你更好地理解这两种语言。 Java 是一种面向对象的编程语言,最初由 Sun Microsys...
    99+
    2023-06-28
    文件 javascript numpy
  • Java和JavaScript:有什么不同?
    Java和JavaScript这两个名字看似相似,但实际上它们是完全不同的编程语言。在本文中,我们将探讨Java和JavaScript的不同之处。 Java和JavaScript的起源 Java是由Sun Microsystems公司...
    99+
    2023-09-10
    javascript shell linux
  • relative和absolute有什么不同
    本文小编为大家详细介绍“relative和absolute有什么不同”,内容详细,步骤清晰,细节处理妥当,希望这篇“relative和absolute有什么不同”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2024-04-02
  • service和systemctl有什么不同
    这篇文章主要介绍了service和systemctl有什么不同的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇service和systemctl有什么不同文章都会有所收获,下面我们一起来看看吧。service命令...
    99+
    2023-06-27
  • Ubuntu和Fedora有什么不同
    本篇内容主要讲解“Ubuntu和Fedora有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu和Fedora有什么不同”吧!桌面概述Fedora提供了vanilla GNOME...
    99+
    2023-06-27
  • C#和C++有什么不同
    本篇内容介绍了“C#和C++有什么不同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在C语言中,资源管理是一个极为繁琐易错的工作,大多复杂的...
    99+
    2023-06-18
  • Java和C#有什么不同
    小编给大家分享一下Java和C#有什么不同,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java和C#都提供了对网络的不同抽象层,编程人员可以使用不同的网络接口完...
    99+
    2023-06-03
  • Python3和Python2有什么不同
    今天就跟大家聊聊有关Python3和Python2有什么不同,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、打印时,py2需要可以不需要加括号,py3 需要python 2 :pr...
    99+
    2023-06-15
  • Python 和 JavaScript 有什么不同?哪个更适合编程算法?
    Python 和 JavaScript 是两种非常流行的编程语言。它们都有自己的优点和不足。在选择一种编程语言来编写算法时,你需要考虑许多因素。在本文中,我们将比较 Python 和 JavaScript 的不同之处,并探讨哪种更适合编写算...
    99+
    2023-10-31
    javascript 编程算法 分布式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作