本学期我们新增了一门课程,那就是软件工程,不知道为什么,感觉有种莫名的高大上。哈哈!难道是这个名称太抽象了吗?这个问题我感觉到后来肯定就明白了。
第一次博客,感觉好紧张哦,嘿嘿!老师让我们谈谈对git的认识,说实在,这个词语我是第一次听说。然后我登录了github的网站,哇!都是英语啊!这个对于一个英语半文盲的我可怎么办呢?心里有种莫名的恐慌,按照老师的要求我注册了github的账号,接下来,就是查询一些关于git的资料,对git有了初步的理解与认识!
我感觉要想对git有初步的了解,先对我们的课程有个认识,毕竟,我们学习的是软件工程这门课程,老师让我们认识git。那么,我们先来看看课本上面对软件工程的定义:软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。撇下课本,说说自我对软件工程的理解:如果把一个软件开发的过程比喻成建设高楼一样,那么软件工程就是楼房的施工图纸,施工方案,解决施工过程中遇到的各种问题,争取把楼房建设的不但豪华,而且坚固。可以说,软件工程就是软件生命周期的保护伞,解决软件出现的各种问题!
接下来我在谈谈对git的认识,先来看一下git出现的背景,公元的某一天,Linux内核源代码版本控制系统的作者因突然宣布说我的这个版本控制系统不再免费,很多Linux内核开发者慢慢弃用这个软件。Torvalds大神决定寻找新的替代品,新的替代品必须符合几个要求:开源免费,高性能,支持分布式,支持非线性工作流,安全健壮,找了一段时间,发现没有符合要求的版本控制系统。这该肿么办呢?这个肯定难不倒大神,大神决定自己撸一个,大概花了不到2周的时间,一个可用的版本搞出来了,经过压力测试,分支合并速度贼快,大神很满意,于是乎用于Linux内核项目了。随着功能的不断完善,越来越多的开发者使用git来管理他们的代码,git就这样在开发者之间流行起来了。git来自于英国的俚语,意为“不受欢迎的人”,在git帮助文档中,大神把它描述为“傻瓜内容追踪器”,大神还是一位很有个性的人呵!言归正传,我们来看一下git的概念: git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。git与你熟悉的大部分版本控制系统的差别是很大的。也许你熟悉Subversion、CVS、Perforce、Mercurial 等等,他们使用“增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。git正好与之相反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。理论上,git可以保存任何文档,但是最善于保存文本文档,因为它本来就是为解决软件源代码(也是一种文本文档)版本管理问题而开发的,提供了许多有助于文本分析的工具。对于非文本文档,git 只是简单地为其进行备份并实施版本管理。
那么什么“版本控制系统”呢?请看下面的介绍。版本控制系统是记录下所有文件的所有版本,可以有效地追踪文件的变化。当代码出错的时候,可以很容易地恢复到之前的状态。对于多人协作开发的项目来说,版本控制系统更是必不可少。它保证每个人都能够获取最近更新的代码,每个人开发的代码可以更方便地增加到项目中,避免不同代码之前产生的冲突,减小沟通成本。而git就是时下最流行的版本控制系统。
自我对git的认识是:git就是为软件的源代码管理而服务的,说白了也是软件工程的一个分支,那么本质上都是为制作一个优秀的软件做后台保障的!git与软件工程就是一家人!
这就是我对git的初步认识,这也是我第一次写博客,感觉萌萌哒,哈哈,有不好的地方,欢迎读者批评指正!