首页 > 其他分享 >SVN与Git的区别

SVN与Git的区别

时间:2024-05-10 10:48:18浏览次数:15  
标签:SVN Git 版本 区别 本地 提交 分支

SVN与Git的区别

1、Git是分布式的,而SVN不是分布式的
2、Git把内容按元数据方式存储,而SVN是按文件
3、Git没有一个全局版本号,SVN有
4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5、Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以
6、SVN必须先Update才能Commit,忘记了合并时就会出现一些错误,git还是比较少的出现这种情况
7、克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作。而Git只是获取文件的每个版本的元素,然后只载入主要的分支
8、版本库(repository)
    SVN只能有一个指定中央版本库。当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。每一个Git都是一个版本库,区别是它们是否拥有活跃目录(Git Working Tree)。如果主要版本库(例如:置於GitHub的版本库)发生了什麼事,工作成员仍然可以在自己的本地版本库(local repository)提交,等待主要版本库恢复即可。工作成员也可以提交到其他的版本库
9、分支(Branch)
    在SVN,分支是一个完整的目录。且这个目录拥有完整的实际文件。如果工作成员想要开启新的分支,每个人都会拥有和你一样的分支。每修改一次,其他人都要重新切分支重新下载。而 Git,每个工作成员可以任意在自己的本地版本库开启无限个分支。只要不合并及提交到主要版本库,没有一个工作成员会被影响。等到不需要这个分支时,只要把它从本地版本库删除即可。Git的分支名是可以重命名的。例如:我的本地分支名为OK,而在主要版本库的名字其实是master。
10、提交(Commit)
    在SVN,当你提交你的完成品时,它将直接记录到中央版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交!而Git的提交完全属於本地版本库的活动。而你只需“推”(git push)到主要版本库即可。Git的“推”其实是在执行“同步”(Sync)

最后总结一下:
SVN的特点是简单,只是需要一个放代码的地方时用是OK的
Git的特点版本控制可以不依赖网络做任何事情,对分支和合并有更好的支持(当然这是开发者最关心的地方)

标签:SVN,Git,版本,区别,本地,提交,分支
From: https://www.cnblogs.com/lixunblogs/p/18167137

相关文章

  • git_常用命令
    git常用命令git常用命令添加一个文件到暂存区gitadd[filename]查看当前状态gitstatus  查看当前状态概况gitstatus-s  查看工作区和暂存区的差别gitdiff   查看暂存区与本地仓库的差别。gitdiff--cached    查看工作区和本地仓库的差......
  • gitlab权限管理,远程仓库(旧)
    gitlab权限管理,远程仓库(旧)6.gitlab权限管理,远程仓库在组中设置的权限会继承到组中的所有项目中在项目中添加权限只影响该项目创建后项目中的成员后,管理员手动设置成员密码(8位以上),成员登陆后系统会要求重设密码dev1登陆,添加host6的公钥,yuminstallgit,[email protected]......
  • 【java】ArrayList和LinkedList的区别
    一、ArrayList和LinkedList的相同点ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用,他们都可以对元素的增删改查进行操作。ArrayList、LinkedList、Vector和Stack是List的四个实现类,List是一个接口,它继承与Collection接口,代表有序的队列。其中Vector......
  • 6-gitlab备份和恢复
    6.gitlab备份和恢复建议备份策略:本地保留3-7天,异地永久备份查看版本cat/etc/redhat-releasecat/opt/gitlab/embedded/service/gitlab-rails/VERSION备份修改配置文件vim/etc/gitlab/gitlab.rbgitlab_rails['manage_backup_path']='true'gitlab_rails['backup_path......
  • Dubbo和Feign的区别?
    Dubbo和Feign是两个不同的微服务框架,它们在通信协议、服务调用方式、服务注册和发现、服务治理、编程模型以及同步/异步调用等方面存在差异。通信协议:Dubbo使用自定义的RPC协议进行通信,而Feign使用HTTP协议进行通信。服务调用方式:Dubbo采用的是服务间直接的点对点调......
  • Gateway、Shiro 和 JWT 三者的区别?
    Gateway、Shiro和JWT都是用于认证和授权的技术,但它们在功能、应用场景和实现方式上存在一些区别。1.功能Gateway:API网关,用于管理API的访问权限,并提供一些通用功能,例如负载均衡、熔断限流等。Shiro:ApacheShiro,是一个强大的权限框架,用于控制用户对系统的访问权限。JWT:J......
  • Springboot项目镜像制作&传递环境变量、设置hostname、动态设置JVM参数、cmd&entrypoi
    实现制作一个springboot的镜像,并且可以传递环境变量实现动态JVM参数和端口。0.准备&cmd、entrypoint区别1.准备springboot项目一个简单的springboot项目,默认启动8001端口,里面只有一个接口。xxx%curllocalhost:8081indexdocker环境2.CMD、entrypoint区......
  • LaTeX 三种短横线的区别
    在LaTeX中,有三种基本的短横线,它们各自的长度和用法都有所不同。这三种短横线分别是连字符、短划线(或数字短横)和长划线。下面是它们的具体描述和用法:连字符(Hyphen,'-')用法:用于连词和复合词。示例:mother-in-law,twenty-four。短划线(Endash,'--')用法:主要用于......
  • useffect 模拟生命周期 及与useLayoutEffect的区别
    一useffect1模拟componentDidMount第二个参数为一个空数组,可以模拟componentDidMountcomponentDidMount:useEffect(()=>{console.log('第一次渲染时调用')},[])2模拟componentDidUpdate没有第二个参数代表监听所有的属性更新useEffect(()=>{console.log('任意状态改变')})......
  • setsate更新之后和usestate的区别
    1setsatesetState(updater[,callback])updater:object/function-用于更新数据callback:function-用于获取更新后最新的state值a构造函数是唯一建议给this.state赋值的地方b不建议直接修改state的值,因为这样不会重新渲染组件c自动进行浅合并(只会合并第1层)d......