相关概念
1.git的概念
- git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
- git 由Linus Linus花了两周时间自己用C写了一个分布式版本控制系统,在2008 正式上线。(这里和Linux有一段黑历史)。
2.github的概念
- github(https://github.com/)是一个面向开源及私有软件项目的托管平台,因为只支持git
作为唯一的版本库格式进行托管,故名GitHub。 - github于2008年4月10日正式上线,除了Git代码仓库托管及基本的
Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目Ruby on Rails
、jQuery
、python
等。 - 2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。
- 2019年05月,《个人电脑杂志》网站报道,GitHub正遭到一名黑客的入侵。据称,这名黑客先擦除代码资源库,然后向用户索要赎金,作为恢复数据的交换。
3.gitlab的概念
- gitlab (https://about.gitlab.com/)是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
- 在github被收购同时,紧接着又推出了gitlab,功能和gitlab 几乎一样,而且更全。而且gitlab 可以搭建自己的服务器。
- 可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。
- 可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
4.码云的概念
- 码云(https://gitee.com/enterprises?from=tg-6-7)是开源中国社区推出的基于git的代码托管服务平台,基于gitlab。目前招商银行,中国科学技术大学,CSDN等多家企业和机构都在使用码云平台。
细微区别
1.关于git,github ,gitlab的区别
- git 是版本控制工具。
- github和gitlab都是基于git仓库的web开发流程代码托管平台。
- 两者的区别是github有私有仓库和共有仓库,私有仓库一般收费,gitlab打破这种限制,可以免费搭建私有仓库,并且可以部署在自己的服务器上。
- gitlab不仅有github的功能,还有更多的优秀特性,比如权限设置。一般企业内部软件产品用gitlab是更好的选择,如果是开源产品,一般放在github上。
2.git与github(https://www.oschina.net/)的区别
- git(https://git-scm.com/)是一个版本控制工具
- github是一个用git做版本控制的项目托管平台。
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 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
参考链接:https://blog.csdn.net/u014401141/article/details/70182869
参考链接:https://blog.csdn.net/u012836354/article/details/81157525
参考链接:https://www.runoob.com/git/git-tutorial.html
更多参考
来源:CSDN
作者:Dwell_hls
链接:https://blog.csdn.net/weixin_42554191/article/details/103933647