一、吐槽个黑历史

git诞生:

git 由Linus Linus花了两周时间自己用C写了一个分布式版本控制系统,在2008 正式上线。(这里和Linux有一段黑历史)。

github:

github代码托管,2018年6月4日 ,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。

gitlab:

在github被收购同时,紧接着又推出了gitlab,功能和gitlab 几乎一样,而且更全。而且gitlab 可以搭建自己的服务器。

二、svn:

必须要有自己的服务器。

三、Git:

Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。 小编总结的一些最常用的Git命令(全名,没用alias之前):

常用命令

  • git checkout
  • git status
  • git checkout -b
  • git commit
  • git diff
  • git add
  • git clean -fdx
  • git fetch --prune
  • git pull --ff-only
  • git branch -D
  • git push
  • git merge
  • git rm
  • git rebase
  • git reset
  • git revert
  • git push origin :yourbranch

四、GitLab

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

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

五、GitHub

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

gitHub于2008年4月10日正式上线,GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。

六、码云

码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进和定制开发,目前已经成为国内最大的代码托管系统,致力于为国内开发者提供优质稳定的托管服务。

码云的主要功能是除了提供最基础的 Git 代码托管之外,还提供代码在线查看、历史版本查看、Fork、Pull Request、打包下载任意版本、Issue、Wiki 、保护分支、代码质量检测、PaaS 项目演示等方便管理、开发、协作、共享的功能。

七、Git和SVN的区别

GIT不仅仅是个版本控制系统,它还是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

1.GIT是分布式的,而SVN不是。

GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。需要做一点声明,GIT并不是目前第一个或唯一的分布式版本控制系统。还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的。但GIT在这方面做的更好,而且有更多强大的功能特征。

GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支等等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。

同样,这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。GitHub.com就是一个这样的优秀案例。

2.GIT把内容按元数据方式存储,而SVN是按文件。

所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

3.GIT分支和SVN的分支不同。

分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。 然而,处理GIT的分支却是相当的简单和有趣。你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。

4.GIT的内容完整性要优于SVN。

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

八、Git和GitHub、GitLab

GitHub、GitLab是基于web的Git repositories(仓库)。 GitLab模仿GitHub,GitLab拥有GitHub拥有的一切,还拥有更多的安全性和灵活性。

GitLab拥有GitHub拥有的一切,但他拥有更多——让团队对它们的repositories拥有更多的控制,它的特色:

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

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


其他:

引用:http://baijiahao.baidu.com/s?id=1605566374654856802&wfr=spider&for=pc

Svn、Git、GitHub、GitLab、码云 区别相关推荐

  1. Git版本控制器(涵盖GitHub\Gitee码云\GitLab),全网最详细教程

    Git(涵盖GitHub\Gitee码云\GitLab) 第1章 Git 概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目. Git 易于学习,占地面积 ...

  2. Git学习笔记:中国版GItHub,码云

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  3. 使用git将本地文件上传到GitHub或者码云gitee仓库的方法

    代码: git config --global user.name "@hyh17808770899" git config --global user.email "5 ...

  4. 如何正确使用git(以码云为例)

    Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大地版本控制软件. 黑马程序员git视频链接:https://www.bilibili.com/video/BV1MU4y1Y7h ...

  5. 怎么把github上的东西传到码云_Git同步更新操作GitHub和码云仓库上面的代码

    一.前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃更 ...

  6. GitHub Desktop + 码云,基友搭配体验翻倍!

    基友搭配体验翻倍! 本篇简单整理一个好用的版本管理工具,尤其是 GitHub Desktop,超级好用啊,吹爆~ 0. 其它 vue实战(1):准备与资料整理 1. GitHub Desktop Gi ...

  7. git小乌龟+gitee码云配置步骤(只做参考)

    git小乌龟+gitee码云配置,需要进行以下步骤: 注册Gitee账号并创建仓库 安装Git客户端: 首先下载git for windows客户端http://msysgit.github.io/ ...

  8. 游戏的汇总,在github和码云上找的,主要是安卓游戏,还有垃圾分类游戏

    游戏的汇总,在github和码云上找的,主要是安卓游戏,还有垃圾分类游戏 文档:测试垃圾分类游戏 和安卓原生代码写的?.. 链接:http://note.youdao.com/noteshare?id ...

  9. 切换本地github或者码云的账号

    若有多个github或者码云的账号,当要从一个账号切换到另一个账号时可以采用如下方法: 1.Ctrl+R 打开 "运行",输入 control 打开控制面板 2.右上查看方式切换为 ...

最新文章

  1. 各种媒体在线播放代码
  2. 读“深度学习在图像处理领域中的应用综述”有感
  3. 深入了解volatile
  4. 内核电源管理器已启动关机转换_Linux系统启动流程
  5. Oracle 数据库linux下sql命令行按回退键变成^H字符输入问题解决方法
  6. Python设置常量不可修改的办法
  7. 计算机应用段落设置,计算机应用操作基础.docx
  8. [Unity 3D] Unity 3D 性能优化(二)
  9. 富士通打印机调整位置_针式打印机怎么设置打印的位置?
  10. 30天自制操作系统第1天 - Hello World
  11. 总结 62 种在深度学习中的数据增强方式
  12. 听好程序员一句劝!零基础这样学Java才是正确的方式!
  13. #Reading Paper#STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendatio
  14. 华为云hica学习笔记
  15. 简易电子琴c语言程序,基于单片机的简易电子琴设计(C语言编程).docx
  16. Doc2Vec的一个轻量级介绍
  17. 专精特新申报的标准及材料
  18. OpenCV如何进行图像的边缘检测?OpenCV边缘检测操作流程
  19. ubuntu12.04 安装 ncurses
  20. 对不起,你不是祖国的花朵,是韭菜

热门文章

  1. jenkins 插件目录_Windows下allure+pytest+jenkins集成手册!
  2. linux 添加隐藏wi-fi,隐藏wifi怎么设置?
  3. c++rpg黑框游戏_c++实现简单RPG对战游戏的代码
  4. CentOS安装Hadoop
  5. 【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】
  6. Myeclipse快键键
  7. MSSQL获取指定日期的SQL语句
  8. DB2 V9 默认帐户信息和服务启动信息
  9. 页面导入样式时,使用link和@import有什么区别?
  10. C++---string类接口整理与深浅拷贝