美文网首页
高效研发之——工具篇(8):Git

高效研发之——工具篇(8):Git

作者: 木头场主 | 来源:发表于2019-06-12 22:15 被阅读0次

    写在前面的话

    这系列的"

    高效研发之——工具篇(3):SVN

    "发出后,被问到为什么是svn不是git,其实,在“

    高效研发之——工具篇(2):禅道

    ”的写在后面的话中就有解释“任何工具都只是实现想法的工具,如果你的想法不明确、不清晰,那这些工具到你手里,就好比一把锋利的刀,却被当作锄头来使用,结果:挖的全是坑。”。这两天整理文档,正好看到之前的git学习笔记,so....。

    git是什么

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git是目前世界上最先进的分布式版本控制系统

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

    关于git的故事 2019/02/01

    很多人都知道,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的介绍网上太多,所以最重要的功能介绍我们在此就简单略过了

    以下是学习功能的笔记,先上个总图

    版本库

    git init: 通过git init命令把这个目录变成Git可以管理的仓库

    git add: 用命令git add告诉Git,把文件添加到仓库

    git commit: 用命令git commit告诉Git,把文件提交到仓库

    git status: git status命令可以让我们时刻掌握仓库当前的状态

    git diff: git diff顾名思义就是查看difference

    ------------------我是分隔线--------I am a Line------------------

    写在后面的话--以下话同svn那一篇

    附1:推荐阅读:版本控制工具历史的10个里程碑:

    https://www.flourish.org/2011/12/astonishments-ten-in-the-history-of-version-control/

    附2:版本管理器的进化图

    (From: http://codicesoftware.blogspot.com/2010/11/version-control-timeline.html )

    这张图上分成了四个时期:

    史前时期:1982年的RCS。现在你可能还能在Unix的发布包中找到它。

    古典时期:1990年的CVS(经典的SCM管理器,可惜不能track目录和文件名的改变,今天这个东西已经过时了),1985年的PVCS,1992年的clearcase(价格贵,功能复杂,当然,今天也有很多公司在用),微软的VSS(Welcome to Hell),90年代中期的Perforce(P4,这个工具今天都还在被广泛地使用,尤其是那些中等大小却有着大量开发团队的公司,现在是Google内部最大的代码管理器)。

    中世纪时期:SVN(Linus很不喜欢SVN,2006年引入了Git),AccuRev(强力支持branch和merge,其扮演了一个很重要角色帮助社区脱离clearcase和CVS),

    文艺复兴时期:BitKeeper——Sun的内部管理工具,Linux的内核代码2002年也用这个工具,其实,很多开源工程都在用这个工具,2005年这个工具的东家BitMover对大家对BitKeeper逆向工程很不满,于是停止支持开源,于是出现了Git。

    相关文章

      网友评论

          本文标题:高效研发之——工具篇(8):Git

          本文链接:https://www.haomeiwen.com/subject/gqiizqtx.html