Git简介

Git系列文章


前言

  任何事情都是有阶段性的,还记得当年写毕业论文时,每修改一次都要保存一个版本,不仅浪费时间,查找修改的地方也很费劲。造孽啊~~~,后来让我见识到了版本控制的重要性,于是疯狂补充版本控制知识。作为程序猿来说,你写的代码从开始的小白到最后的大佬记录,多年后看到这些代码,你惊讶的自嘲到“这TM是碳基生物能写出来的代码???”

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。


一、版本控制系统

  我们这种凡人想要一个版本控制系统,那些大神岂能坐视不理?立马开发了一个本地版本控制系统,并以一些备注区别不同之间的版本。但是这种以复制整个项目目录的方式来保存不同的版本的系统有点简单,十分容易出错,于是采用数据库来记录文件的历次更新差异。那么,问题又来了,项目越做越大,需要的人也越来越多,我们知道现在的工作都是协同开发,那么本地版本控制系统的繁琐弊端就出来了,这时候有人提出“我们把项目集中在一台服务器上,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新”,这就是集中化版本控制系统。后来的后来,分布式技术的出现让版本控制看到了更高的标准,将分布式技术融入版本控制系统,当一台服务器挂了,千千万万个服务器又站出来了,为了突出它的不一样我们叫它,分布式版本控制系统。

  • 本地版本控制系统
  • 集中化的版本控制系统
  • 分布式版本控制系统

概念

本地版本控制系统:诸如RCS,它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS): 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
分布式版本控制系统(Distributed Version Control System,简称 DVCS):像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

二、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了。


三、Git安装

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值