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

个人理解:

  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优点:(一台的服务器控制很多客户端,使用过程中不能断网)

  管理方便、逻辑明确;

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

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

具体详细比较,可以详见:https://www.cnblogs.com/kevingrace/p/5904595.html(侵删)

原文地址:https://www.cnblogs.com/21-forever/p/10949309.html

时间: 2024-10-11 20:38:07

Git、Github和GitLab的区别及与SVN的比较的相关文章

Git,GitHub以及GitLab的区别

Git - 版本控制工具 Github - 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等 GitLab - 基于Git的项目管理软件 Git分布式版本控制系统 Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git - 版本控制工具Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.To

gitLab的使用 和 git 、 github、gitlab的区别

一.git . github.gitlab的区别  (百度相关内容得到的理解) ? ? 二.git最基本作用:版本控制 ? 三.有集成了git的GIT安装包 github和gitlab都使用git该版本控制系统,来实现对代码的管理. 所以,原先怎么用git操作github的,那么用git操作gitlab是一样的. ? ?? https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git 三. 个人问了公司开发,并总

Introduction of Git, Github and Gitlab

========================================================================== Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. ==========================================

Git、GitHub、GitLab三者之间的联系以及区别

在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转) 1.什么是 Git? Git 是一个版本控制系统. 版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统. 以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目: project_v1.project_v1.1.project_v2等等,通过这种方式记录我们项目的不同版本的修改, 有的时候我们还会在不同版本的文件中写一个说明,记录此版本项目新增.修改,删

git push文件到远程github或者gitlab

1 Git global setup 2 3 git config --global user.name "luozeng" 4 git config --global user.email "[email protected]" 5 6 Create a new repository 7 8 git clone https://gitlab.com/luozeng/blog.git 9 cd blog 10 touch README.md 11 git add R

GitHub & Bitbucket & GitLab & Coding 的对比分析

来源于:https://www.v2ex.com/t/313263 目前在代码托管和版本控制上的主流工具 — Git ,比较流行的服务有 Github . Bitbucket . GitLab . Coding ,他们各自有什么特点,个人使用者和开发团队又该如何选择? 在这篇文章中,我们以客观的态度,以问题作为出发点,介绍和比较 GitHub . Bitbucket . GitLab . Coding 在基本功能,开源与协作,免费与付费计划,企业解决方案,集成 flow.ci 等方面,让大家了解

octotree神器 For Github and GitLab 火狐插件

Code tree for GitHub and GitLabExtension to show code tree for GitHub and GitLab. Useful for developers who frequently read source and do not want to download or checkout too many repositories.Features: * Easy-to-navigate code tree like IDEs* Support

创建SSH Key连接github或gitlab

当我们从github或者gitlab上clone项目或者参与项目时,我们需要证明我们的身份.一种可能的解决方法是我们在每次访问的时候都带上账户名.密码,另外一种办法是在本地保存一个唯一key,在你的账户中也保存一份该key,在你访问时带上你的key即可.github.gitlab就是采用key来验证你的身份的,并且利用RSA算法来生成这个密钥. 链接方法 首先你需要在github上或者gitlab上有一个自己的账户 打开git bash,输入命令ls -al ~/.ssh.检查是否显示有id_r

"git rm" 和 "rm" 的区别(转载)

转自:http://yang3wei.github.io/blog/2013/02/03/git-rm-he-rm-de-qu-bie/ 这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的. 用 git rm 来删除文件,同时还会将这个删除操作记录下来:    用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除. 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,会自动将删除该文件的操作提交上去.