Git 简介

本贴最后更新于 2217 天前,其中的信息可能已经水流花落

Git 是一款免费、开源的分布式版本控制软件,用于敏捷高效地处理任何或小或大的项目。

什么是版本控制软件?

版本控制软件提供完备的版本管理功能,用于存储、追踪目录和文件的修改历史,追踪多个版本的开发和维护及发布活动。

版本控制软件有哪些?

常用的版本控制软件:CVS(1985,始祖,集中式)、SVN(2000,集大成者,集中式)、Git(2005,最流行,分布式)、BitKeeper(Git 诞生和它有关)。

CVS 作为最早开源并免费的开源版本控制软件,早些年也曾非常流行(我最早接触的版本控制软件好像就是 CVS),不过由于设计上的缺陷,会造成文件不完整、版本库损坏等问题,很快就被新的版本控制软件替代。

SVN 修复了 CVS 的一些缺陷,使得安全性、完整性都有很大的提升,曾经应该是最流行的版本控制软件(我使用时间最长的版本控制软件)。

Git 是目前最流行的版本控制软件,使用起来最大的感受就是快,也是在开源社区最受欢迎的版本控制软件。

集中式 VS 分布式

集中式:版本库在中央服务器,必须联网才能工作,中央服务器很重要不能挂。

分布式:每个人电脑上都有完整的版本库,无需联网也能工作,不依赖于中央服务器,但实际工作中还是有类似中央服务器的版本库方便大家交换修改。

Git VS github

很多人搞不清楚 Git 和 github 的关系,经常将二者搞混。

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

国内的 gitee(码云)也是一个类似 github 的托管平台,并且提供免费的私有的项目托管,在国内相比 github,不会存在网络无法访问的问题。

Git 诞生

既然已经有这么多优秀的版本控制软件了,为什么还要开发 Git 呢?我们得从 Linus(人名,创建了 Linux 操作系统)和 Linux 说起了。

Linus 在 1991 年开发了 Linux 并将它开源,开源后吸引了全世界的志愿者参与其中,在 2002 年之前,世界各地的志愿者通过 diff 的方式提交源代码,然后由 Linus 本人通过手工的方式合并代码。不可思议!全世界最顶级的开源软件竟然使用手工方式提交合并代码!

为什么 Linus 不把 Linux 代码放进版本控制软件中呢?因为 Linus 坚决反对 CVS、SVN,这些集中式版本控制软件不仅速度慢,而且必须联网才能用(那个年代网络还没有普及并且网速也不行)。当然有一些商业的版本控制软件比 CVS、SVN 好用,但是是付费的,有违 Linux 的开源精神。

2002 年后,社区志愿者越来越不满手工提交代码的方式,最终 Linus 选择了一个商业版本控制软件 BitKeeper(估计 Linus 也扛不住了),BitMover 公司给了 Linux 社区免费授权。后来,Linux 社区有人破解了 BitKeeper 的协议,激怒了 BitMover 公司,最终 Bitmover 收回了免费授权。

接下来 Linus 怎么办呢?自己开发个版本控制软件,大神就是大神,处理方式完全不同于常人( 不服别人就服 Linus)。Linus 花了两周就开发出了 Git,并将 Git、Linux 代码交由 Git 管理了。

现在 Git 已经成为全球最流行的分布式版本控制软件。

  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 695 关注
  • cvs
    1 引用

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...