首页 > 其他分享 >Git、Github和GitLab的区别及与SVN的比较

Git、Github和GitLab的区别及与SVN的比较

时间:2024-01-16 17:37:38浏览次数:30  
标签:SVN Github GitLab 控制系统 Git 版本 服务器 分布式

 

https://www.cnblogs.com/21-forever/p/10949309.html  

个人理解:

  SVN适合领导啊,大家一起在加班,看你进度什么的,git则不必如此,忙完传上来完活。

一、含义:

百度上这样介绍的:

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

  GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

  GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

二、详解:

  Git是一个版本控制系统(Version Control System,VCS)。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。有了版本控制系统,就可以不用担心文件丢失,不小心误修改文件等等“事故”,而且你可以随便回到历史记录的某个时刻。

  Github 和 Git 是两回事。Git是版本控制系统,Github是在线的基于Git的代码托管服务。GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,但是付费账户也可以创建私有的代码仓库。

  Github有个小缺陷 (也不能算是缺陷吧), 就是你的repo(repository的缩写,表示“仓库”)都需要public(公开), 如果你想要创建private(私人)的repo, 那得付钱。不过, 幸好, Gitlab解决了这个问题, 可以在上面创建免费的私人repo。GitHub和GitLab都是基于web的版本控制界面,服务于互联网,Github可以直接注册使用,Gitlab需要部署到服务器。

  GitLab创建的项目的默认属性是Private(私人的),当然,你也可以选择Public(公开的)或Internal(内部的)。

三、SVN含义:

  SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 

四、Git与SVN比较:

  SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。
  SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
  Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

1、集中式版本控制系统:
  版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

  集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

2、分布式版本控制系统:

  首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

  和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

  在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

3、简单比较如下:

 Git优点:(一台电脑即可以是客户端,也可以是服务器;工作过程中,可以断网)

  适合分布式开发,强调个体;

  公共服务器压力和数据量都不会太大;

  速度快,灵活;

  可以离线工作。

 SVN优点:(一台的服务器控制很多客户端,使用过程中不能断网)

  管理方便、逻辑明确;

  集中式管理更能保证安全性;

  适合开发人数不多的项目开发。

标签:SVN,Github,GitLab,控制系统,Git,版本,服务器,分布式
From: https://www.cnblogs.com/walkersss/p/17968139

相关文章

  • Gitlab 备份、恢复、升级gitlab数据
     https://wiki.wabks.com/pages/191a66/ #1、备份#手动备份$gitlab-rakegitlab:backup:create#执行完成后会在/var/opt/gitlab/backups/目录下生成压缩包#2、恢复Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复gitlab-ctlstopunicorn......
  • 一次非典型的gitlab镜像库(registry服务)故障排除
    现象公司内机房一次停电与服务器重启后,有人反应gitlab内的CI无法执行了。查看CI作业日志发现是registry镜像库访问返回了503错误。Errorresponsefromdaemon:loginattempttohttp://registry.xxx.com/v2/failedwithstatus:503ServiceUnavailable从本机执行docke......
  • 加速Docker-Pull或者docker-compose拉取镜像-适用github源
    title:加速DockerPull或者docker-compose拉取镜像-适用github源tags:[Docker,docker-compose]新版原文:https://query.carlzeng.top:3/appsearch?q=加速DockerPull版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA许可协议。转载请注明出处!date:2023-12-2623:1......
  • GitHub 高级搜索功能
    了解开源项目对于开发者的价值开源项目可以给开发者带来以下帮助:1、加速开发过程:开源项目提供了大量的可复用代码、库、框架和工具,可以帮助开发者快速构建应用程序和解决技术问题。这种可重用性可以显著加速项目的开发周期。2、降低开发成本:通过使用开源项目,你可以减少开发......
  • 解决Github port443:Timed out
    Failedtoconnecttogithub.comport443:Timedout修改Git的网络设置注意修改成自己的代理的IP和端口号gitconfig--globalhttp.proxyhttp://127.0.0.1:7890gitconfig--globalhttps.proxyhttp://127.0.0.1:7890取消代理是因为,访问Gitee或其它是不需要梯子,所......
  • GitHub互赞快速涨星,最简单的涨星方法
    ​各位代码们,是不是厌倦了在GitHub上孤独地刷着自己的项目页面,眼巴巴地等待那星星数的涨幅?今天给大家安利一个超级实用的新玩意儿——涨星互助平台,一个让你的GitHub项目星星数飞起来的秘密基地!在这个平台上,你不仅能遇见一群志同道合的开源小伙伴,还能互相了解彼此的项目,发现那些隐......
  • 开源的代名词「GitHub 热点速览」
    当开发者谈论开源时,通常会想到GitHub,它不仅仅是一个代码托管平台,更是一个汇聚了全球开发者的社交中心。过去,开发者发布一款软件后,都是在自己的小圈子里默默努力和交流,现在通过GitHub平台可以方便地与全球的开发者分享、交流和协作。贡献者在这里展示自己的才华,追随者在这里寻......
  • GitHub创建新仓库
    第一步、右上角点击【+】,选择【Newrepository】 第二步、设置一下仓库的基本信息在如下图的红框位置,输入仓库的名称、描述以及是否公开。第三步、滑到最下面,点击【Createrepository】,仓库就创建好了 ......
  • 关于 Github 的 2FA
    由于一些我不了解的原因,Github开启了2FA。然后有部分人就无法正常使用Github,比如我就被拦在了2FA外(挺不理解的)。由于没有移动端设备,所以很烦人。所幸找到了一个扩展:Authenticator:2FAClient,在chrome,edge,firefox上都有可用的版本。使用也很简单,点击扩展图标后,点右上角......
  • GitHub常用搜索技巧
    普通关键词搜索搜索关键词为javascript的所有项目,可以搜索到数量为2百万的项目,数量庞大,不利于筛选。高级搜索(添加限定词)搜索写法含义in:nameXXX按照项目(仓库)名称搜索in:descriptionXXX按照项目(仓库)描述搜索in:readmeXXX按照README文件搜索languag......