git,github,gitlab和码云的区别

6,975 阅读6分钟

相关概念

1.git的概念

  • git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
  • git 由Linus Linus花了两周时间自己用C写了一个分布式版本控制系统,在2008 正式上线。(这里和Linux有一段黑历史)。

2.github的概念

  • github(github.com/)是一个面向开源及私有… 作为唯一的版本库格式进行托管,故名GitHub。
  • github于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
  • 目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on RailsjQuerypython 等。
  • 2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。
  • 2019年05月,《个人电脑杂志》网站报道,GitHub正遭到一名黑客的入侵。据称,这名黑客先擦除代码资源库,然后向用户索要赎金,作为恢复数据的交换。

3.gitlab的概念

  • gitlab (about.gitlab.com/)是一个用于仓库管理系…
  • 在github被收购同时,紧接着又推出了gitlab,功能和gitlab 几乎一样,而且更全。而且gitlab 可以搭建自己的服务器。
  • 可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。
  • 可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

4.码云的概念

  • 码云(gitee.com/enterprises…) 是开源中国社区推出的基于git的代码托管服务平台,基于gitlab。目前招商银行,中国科学技术大学,CSDN等多家企业和机构都在使用码云平台。

细微区别

1.关于git,github ,gitlab的区别

  • git 是版本控制工具。
  • github和gitlab都是基于git仓库的web开发流程代码托管平台。 两者的区别是github有私有仓库和共有仓库,私有仓库一般收费,gitlab打破这种限制,可以免费搭建私有仓库,并且可以部署在自己的服务器上。
  • gitlab不仅有github的功能,还有更多的优秀特性,比如权限设置。一般企业内部软件产品用gitlab是更好的选择,如果是开源产品,一般放在github上。

2.git与github(www.oschina.net/)的区别

3.码云与 github 的对比

  • 优点:码云的服务器在国内,在国内访问速度比github快很多,可以免费让自己的仓库他人不可见,但是否安全就不知道了。访问速度很快,支持svn,git两种方式,免费账户同样可以建立 私有项目,而 github 上要建立私有项目必须 付费。

  • 缺点:每个仓库有1G的容量限制,把Unity工程弄上去一下就超了。

4.git和github、gitlab

  • github、gitlab是基于web的Git repositories(仓库)。
  • gitlab模仿github,gitlab拥有github拥有的一切,还拥有更多的安全性和灵活性。 gitlab拥有github拥有的一切,但他拥有更多——让团队对它们的repositories拥有更多的控制

5.gitlab的特色

  • 非常便捷的用户界面,在同一界面上获取到:projects,最近的projects,用户,最近的用户,群组和状态;
  • 允许设置仓库权限是公用的还是私有的;
  • “Snippet support”让用户分享一个project的部分代码,而不是整个project。 受保护的分支是一种提升代码安全性的新方法,它们允许用户设置project的获取权限,所以一个团队中只有特定的人可以push,force push或者删除一个分支的代码。
  • Authentication levels更进一步的提升安全性,允许用户给人读写以外的权限。
  • 举例来说,你可以给一个组员跟踪变动的权限却不给他获取代码的权限。
  • 你可以设置获取到团队的整体的改进进度,而不是你个人的进度。
  • 开发者通过打上“仍在进行中”状态标签让其他成员知道代码没有完成,从而阻止未完成的代码合并到其他的代码中“innersourcing”公司的资源如果员工不再权限范围内,将不知道这个资源的存在。

6.git 与 SVN 区别

  • git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

  • 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 git 提供的一些概念和特征。

git 与 SVN 区别点:

1、git 是分布式的,SVN 不是:这是 git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

2、git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

3、git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4、git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

5、git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

参考链接:blog.csdn.net/u014401141/…

参考链接:blog.csdn.net/u012836354/…

参考链接:www.runoob.com/git/git-tut…

更多参考