The Git Parable:Git传说

目录 1 译者的话 2 前言 3 比喻(Parable) 3.1 快照(Snap) 3.2 分支(Branches) 3.3 分支名称(Branch Names) 3.4 标签(Tags) 3.5 分发(Distributed) 3.6 离线(Offline) 3.7 合并(Merges) 3.8 重写历史记录(Rewirting History) 3.9 “缓冲”区(Staging Area) 3.10 找差异(Diffs) 3.11 消除重复(Eliminating Duplication) 3.12 压缩文件(Compressing Blobs) 4 真正的Git(The True Git) 5 资源 1 译者的话 一直以来都觉得CVS等版本控制系统很神秘,自己也想使用。也跟着在Github网站上的教程做过一次,但是始终不得要领。正好看到这样一篇文章。 本人水平有限,并且翻译的时候喜欢添油加醋,罗哩罗嗦,还爱加上自己有限的理解和调侃,自娱自乐,还请不喜欢我风格的人轻点儿拍砖。 2 前言 Git,它其实是一个非常简单却又非常非常给力的系统。我们先来看看在大多数情况下,高手们是怎么教一个新手学习Git的呢?一般来说,高手一上来,会先给我们示范一堆乱七八糟的命令。然后,然后?没有然后了,教完了!而且末了还不忘加上一句:你看!就是这么滴简单~啧啧啧,我觉得这种方式很不妥:照这么个教法儿,很有可能,我们会学会用Git的来做几个简单的小任务,但是,我估计,你肯定会觉得Git很神奇,很魔幻,很科幻,很武侠……而且,想用这些神奇的特性做任何高级一点儿的东西都会很困难。所以,想真正使用Git的话,这么教(或者这么学)可不成,你得理解Git的一些基本概念。 下面,我会用一个Parable(比喻),从最最基本的概念起模拟Git是怎么一步一步衍生出来的。理解这些概念非常重要,理解他们以后,你就算是准备好怎么榨干Git身上的每一滴血了!(邪恶)其实概念们本身很简单,但是简单的概念组合起来之后,就能干一大堆很神奇的事儿了。你把我这篇文章读完了,就好比打通了任督二脉,任何歪门邪道的功夫一练就会,一会就精;同理,任何乱七八糟的Git的命令拿来就用,用了就好使! 3 比喻(Parable) 从现在开始,假设你有个破电脑,上面就一个文本编辑器,再加上几个控制文件的命令。然后,你做了个重要的决定,你决定就用这个电脑这个系统写一个大型软件项目。你需要个方法来管理软件的版本,以后想要看看之前某个版本的时候,或者想恢复过去的时候能够找到它。于是你满世界去找这种方法,但是没找到……因为您是一位非常负责任的开发者,你一赌气,干脆自己发明一个吧!接下来,我们的故事就是:你到底可能怎么发明这么一个“版本控制系统”(VCS),还有你当时是怎么寻思的! 3.1 快照(Snap)… Continue reading The Git Parable:Git传说

Advertisements

读书记录–前言

读书记录主要用来记录我自己阅读的书籍目录以及进度,希望用记录的方式来鞭策自己并纪念读过的每一本书。我会试着写下自己在阅读过程中的感受,以做纪念,也希望能给各位朋友提供一些参考。 先说说基本情况:大学期间学的是食品专业,毕业一年左右,发现自己想从事计算机方面的技术工作,于是辞掉工作,开始从头学起计算机相关专业课程,希望在自学好一些基础课程后试着去找找工作。当然,如果实在找不到的话可能会去报班学习(如北大青鸟这种培训,虽然没有仔细的了解过,不过据说至少能保证找到工作,能跨过行业这一道门槛罢)。其实我认为如果对自己有信心的话,除了人才市场和网上投简历之外,还有无数种方式找到工作,比如:通过朋友、老师介绍,通过论坛招聘,或者有针对性的主动结交朋友,或者干脆主动上门推销自己。 回顾以前学过的知识,与计算机科学相关的有高等数学、概率论、线性代数、C语言、单片机(很浅),当然还有最重要的就是英语了。至于学到的程度,就是理解了,书后面的习题也会做,不过没有进行过任何针对性的训练,做题的速度很慢。实际上,我曾经接受了一个观点,大意是说一个人什么时候才算是理解了一件事情了呢?就是他能用自己的方式再表述一遍,并且能让别人印证明白他在说的是同一件事。实际上更严格来说,如果你解释不清除一件事,说明你根本没有理解清楚这件事。从这个层面上来看,以上学习过的知识我基本都给别人补过课(大部分是我女朋友),而且还算能讲明白吧,因为最后大学考试里她总比我成绩好。 看多了其他人分享的经验吧,我也认为,不是天才的话,想要学好计算机科学、软件编程,最好还是系统地、有体系地学起。如果仅仅看会了某种语言就去工作,没有底气和底蕴,浮于表层,会只看得见树木不见森林,将来进一步的发展有可能遭遇瓶颈。所以我刚开始还是稳下来,先从计算机专业的基础课开始,打下一定的基础后再去找工作。经过朋友的推荐并结合自己的实际情况,最终决定先学习以下几门课程: 《Discrete Mathematics and Its Applications》(离散数学) --Kenneth H. Rosen 《Introduction to Computing Systems》(计算机系统概论) --Yale N. Patt c语言 《Data Structures and Algorithm Analysis in C》(数据结构与算法分析) --Mark Allen Weiss 《编译原理》(龙书) 《Modern Operating Systems》(操作系统) --Andrew S. Tanenbaum 书选的都是全英文版本,一是因为计算机发展还是欧美最强,以后早晚都要看英文书籍和文献,不如现在直接开始就适应起来;二是翻译本身就是一个信息丢失的过程,再加上国内技术书籍翻译的稿费太低,大家没有办法认真翻译,所以翻译质量千差万别,能读到一本好的翻译书籍是很难的。实际上看英文文献就是适应的问题,大学英语水平绰绰有余,而且一个作者写书用的单词基本上也就那些,看多了就全明白了,随着英文水平的提高,阅读速度也会慢慢提升。 实际上我正式离职是在5月1号,截至目前(7月24号)已经将编译原理看了50页了(总共1000页!!!坑跌呀!!!),前面读的书的感想之后会慢慢补齐。其实实际专心看书的天数也就一半吧,因为总会有些事情要分心,中途也回老家呆了一个月练练车,所以进度偏慢吧。前言先到这里,总之之后就是最折磨人的失业补习生活,端地是不轻松!