Git 和 Github 的区别?以及 Git 的起源

博客主页:https://blog.csdn.net/mukes
欢迎点赞收藏⭐留言如有错误敬请指正!
本文由 mukes 原创,首发于 csdn

目录

    • 前言
    • Git 是什么
    • Git 的发展历程
    • GitHub 是什么
    • GitHub 与 Git 的区别
    • git for windows 、git-scm 和 msysgit 的区别


前言

很多书籍或者教程明明看过了很多遍,也跟着实操了,但是久而不用,也会逐渐忘却,特别是 Git 。

其实 Git 的操作方法我已经学了 n 遍了,也实操了 n 遍,但是太久不用又会逐渐忘记,巧合现在有空,我就把之前学的东西再快速过一遍,并记录下来,等下次忘记的时候再回头看看这一篇博客。

如果有朋友也有和我一样的苦恼,恰好也刚好看到我这一篇博文,并觉得有用的话,欢迎收藏,有空时再细细研读,话不多说我们开始吧。

首先,我们先明确一件事,先有 Git 后再有 GitHub 。


Git 是什么

Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。

Git 易于学习, 占地面积小,具有闪电般的快速性能。
它具有 Subversion,CVS,Perforce 和ClearCase 之类的 SCM 工具,具有廉价的本地分支,方便的暂存区域和 多个工作流等功能。1

一说到版本控制,有一些人可能感受不深,但是写过论文的朋友可能印象就比较深刻了,论文毕竟是要修修改改的,但是有时候自己也不能保证修改好不好,所以总会保留副本,比如下面这样:
Git 和 Github 的区别?以及 Git 的起源_第1张图片
如果修改得不满意,就直接用之前的版本重新来,这就有点版本控制的味道了。

项目的如果不做版本控制,如果你修改了之前的代码,下次再打开,想看看原来的代码,那基本就不可能了,所以,版本控制差不多就是这个道理,其中还有很多细节,我们就讲一个大概就行了。

那么 Git 是如何进行版本控制的呢?
这个就需要去 Git 官网下载对应系统的软件了,下载地址为 git-scm.com或者gitforwindows.org
上面的 git-scm 是 Git 的官方,里面有不同系统不同平台的安装包和源代码,而 gitforwindows.org 里只有 windows 系统的安装包

下载了就要学习怎么用了,给大家推荐一本书:GitHub入门与实践 密码:7aik

除此之外,再给大家推荐一些不错的网络教程:

1.Git的奇技淫巧   [GitHub 12.8k stars]
2.git-简明指南       [图形化模式,简单易懂]
3.图解Git              [一样是图形化教程]
4.廖雪峰-Git教程  [访问量: 29656109033]
5.git-cheatsheeth [图形化 Git 命令的作用域]


Git 的发展历程

很多人都知道,Linus 在 1991 年创建了开源的 Linux,从此,Linux 系统不断发展,已经成为最大的服务器系统软件了。
Linus 虽然创建了 Linux,但 Linux 的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为 Linux 编写代码,那 Linux 的代码是如何管理的呢?
事实是,在 2002 年以前,世界各地的志愿者把源代码文件通过 diff 的方式发给 Linus,然后由 Linus 本人通过手工方式合并代码!
你也许会想,为什么 Linus 不把 Linux 代码放到版本控制系统里呢?不是有 CVS、SVN 这些免费的版本控制系统吗?因为 Linus 坚定地反对 CVS 和 SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比 CVS、SVN 好用,但那是付费的,和 Linux 的开源精神不符。
不过,到了 2002 年,Linux 系统已经发展了十年了,代码库之大让 Linus 很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是 Linus 选择了一个商业的版本控制系统BitKeeper,BitKeeper 的东家 BitMover 公司出于人道主义精神,授权 Linux 社区免费使用这个版本控制系统。
安定团结的大好局面在 2005 年就被打破了,原因是 Linux 社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发 Samba 的 Andrew 试图破解 BitKeeper 的协议(这么干的其实也不只他一个),被BitMover 公司发现了(监控工作做得不错!),于是 BitMover 公司怒了,要收回 Linux 社区的免费使用权。
Linus 可以向 BitMover 公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus 花了两周时间自己用 C 写了一个分布式版本控制系统,这就是 Git !一个月之内,Linux 系统的源码已经由 Git 管理了!
Git 迅速成为最流行的分布式版本控制系统,尤其是 2008 年,GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub,包括 jQuery,PHP,Ruby 等等。
历史就是这么偶然,如果不是当年 BitMover 公司威胁 Linux 社区,可能现在我们就没有免费而超级好用的Git了。2

GitHub 是什么

GitHub 是为开发者提供 Git 仓库的托管服务。这是一个让开发者与朋友、同事、同学及陌生人共享代码的完美场所。

上面这两句话用大白话来说就是 GitHub 就是一个仓库(网站),提供给开发者存放代码(现在已经不限于代码了,比如文档等)

GitHub 的创始人之一 Chris Wanstrath 曾有个愿望,那就是能有一个 Git 仓库的托管服务让自己与朋友轻松分享代码,而这便成为了 GitHub 诞生的契机。不过,他也曾经表示:Git 仓库的托管服务是GitHub 项目的目标之一,这只是漫长路程上的一个点而已。


GitHub 与 Git 的区别

GitHub 与 Git 是完全不同的两个东西。
在 Git 中,开发者将源代码存入名叫“Git 仓库”的资料库中并加以使用。而 GitHub 则是在网络上提供 Git 仓库的一项服务。

Git 仓库管理功能是 GitHub 的核心。因此,使用 GitHub 之前必须先掌握 Git 的相关知识,同时本地的设备还要安装 Git 的环境。

GitHub 上公开的软件源代码全都由 Git 进行管理且只支持用 Git 进行管理。
注:记住,先有 Git,再有 Github,是 Github 傍 Git 大腿发展起来的,而不是 Git 傍 GitHub 大腿。

GitHub 只是一个提供代码托管的一个网站而已,我们都知道,很多大公司也用 Git 进行代码管理,比如 微软、阿里巴巴、腾讯、Facebook等等。

我相信很多人曾经都有所疑问,这么多公司使用 Git,那代码岂不是都要上传到 GitHub 上去了,其实这些公司基本是自建服务器,然后把代码托管到自家的服务器上,我用 Git 管理项目代码,不代表我就把代码托管到 Github,我可以把代码托管到自己建立的服务器上,也可以是 GitHub、GitLab、Gitee(码云)。


git for windows 、git-scm 和 msysgit 的区别

MsysGit 是 git for windows 的前身,已经是过去时了,于2015年8月18日退役,之后 Windows 端的改为 git for windows.

网站 git-scm.com 是的 Git 的版本控制软件的官方网站。没有“ Git-SCM”,仅是源控制管理(SCM)软件的URL,名称仅为Git。3


ps:如果你觉得博主写得针不戳的话,欢迎点赞收藏 ~(゜ - ゜) つロ 干杯~
如有疑问,欢迎留言讨论~


  1. Git 官网介绍[https://git-scm.com/] ↩︎

  2. 廖雪峰-Git教程[https://www.liaoxuefeng.com/wiki/896043488029600/896202815778784] ↩︎

  3. differences-between-git-scm-msysgit-git-for-windows[https://stackoverflow.com/questions/22310007/differences-between-git-scm-msysgit-git-for-windows] ↩︎

你可能感兴趣的:(git,github,分布式,gitlab,mukes)