GIT - 版本控制与GIT野史

这篇博客主要说一些关于版本控制和GIT野史。如果您是GIT老手,请见笑然后Ctrl+w

关于版本控制

版本控制(Version Control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。 – 百度百科

通俗点说版本控制就是当文档写错了,能够让你回退到之前某个正确的版本,给你一着悔棋。版本控制发展到现在也有几十年了,我斗胆将其归为三个不同阶段:

  • 手动
    这肯定是最接地气的用法!写过毕业论文的同学都知道:论文是改出来的! 而且有可能今天的你会觉得昨天写的那个版本会更好一些,所以象我这种学渣们一般在改论文之前会另存一份,在文件名后面附上日期,比如 <论屌丝的重要性-20160105.doc>。当哪天之前的版本貌似好一些的时候,就可以打开有着不同时间日期后缀的文件查看了。

    其实在处理不用长时间修改的文件的时候,我一般还是会采用这种做法。比如写各种报告,递上去给老板review之后,基本是要修改的 (不用修改的就不叫review啦 )。 这时我一般都另存一份,并标记当前时间,万一需要改回来就可以重用了。

  • 集中式版本控制系统
    上面手动的做法对于个人来说,基本够用了。但对于团队协作开发就会有很大问题了,比如团队写代码,如果大家都要修改同一个文件,可想而知,手动备份是要挨千刀的! 于是可耐的码农们就想出了版本控制系统。

    最开始的版本控制系统可以追溯到1985年荷兰阿姆斯特丹 VU大学的Dick Grune教授实现的CVS,它将用户的每一次改动保存到服务器,这样把版本库的任意一个目录拿出来就是一个完整的版本。

    长江后浪推前浪,2001年的时候,一款名为subversion的版本控制系统诞生了,它弥补了CVS使用过程中遇到的种种问题,而且提供了更多强悍的功能

  • 分布式版本控制系统
    集中式版本控制系统确实给码农提供了方便,但也带来了问题:由于是集中式版本控制,也就是几乎所有的用户操作都需要跟服务器交互。如果网速不够猛,那就会动次打次!要是断网了,那就看新闻联播去了!

    码农都是为解决痛点而生的,既然集中式有问题,那就分布式吧!于是就有了 BitKeeper,GIT这等分布式版本控制系统

GIT野史

接着咱们来说点GIT的野史。据说Linux它老爹Linus Torvalds当年是一个坚定的CVS反对者,不明缘由,听说是带宽的问题。从1991年到2002,他老人家都是手动来维护Linux内核开发的,每天查邮件收别人提交的代码,然后再手动添加到代码库里面去! 受不了众多码农的口诛笔伐,Linus终于在2002年的时候 采用了一款商业的分布式版本控制系统,叫 BigKeeper!

如果BigKeeper跟Linux开源社区 夫妻恩爱,举案齐眉,也就没有后来伟大的GIT了! 故事发生在2005年,Linux开源社区与BigKeeper这家公司干架了!

Bigkeeper这个小气鬼就说:“哼,我的东西不再给你白用了!”
Linus还嘴:“不用就不用,再用是小狗!有什么了不起的,老子自己写一个,开源给社区用,让你没钱赚,气死你个孙子” (PS:事是这么个事,但对话是编的,他们都不会说中文)

然后Linus捋起袖子就真干了起来,而且是一个改变版本控制系统实现的软件!什么Github,Gitlab啥都是拜他所赐的! 这绝对是Linus第二个惊天地泣鬼神的系统……

你可能感兴趣的:(GIT,Tools,git,版本控制)