本节课主要介绍了Git是什么,以及什么是分布式版别办理体系
为什么要代码办理
软件是怎么开发出来的,大家都有了解吧。软件是由程序员经过代码开发出来的。一个软件满足杂乱的时分,代码量就会特别大。这个时分就不会由一名程序员来单独开发,需求多名程序员之间的配合来开发完结。
这个时分,多名程序员之间的代码怎么办理就十分重要。Git便是用来处理这个问题的。像程序员经常访问的github.com便是经过Git来做代码提交和兼并的。相似的网站还有gitlab.com,gitee.com等。
那么Git是什么呢?从定义上来说,Git是一个分布式版别办理体系(Distributed Version Control System – DVCS)。这儿面有两个关键词:一个是版别办理,一个是分布式。
版别办理体系
前面说到软件开发过程中,代码需求被办理。最开始的代码办理体系,便是一般的版别办理体系,比方SVN。这类体系的特征有以下三个特点。
版别办理
首先,它需求能进行代码的版别办理。每一次的代码改动,包括增加,修正,删除,文件移动,都需求被记录下来。而且能记录代码修正的原因以及每一次提交的顺序。 其次,需求支撑代码的回滚,如果发现代码改错了,能够指定回滚到某次修正。 最终,能比对代码变化。对前史的代码变动,能进行检查。
自动提交
和一般word文档自动保存不同,代码的提交,需求程序员自动提交。因为一个功用的开发,经常会花很长时刻,修正许多文件。如果是自动保存,自动提交,会呈现保存的代码功用只修正了一半的状况,代码的版别办理就无章可循。 如果是自动提交,那么程序员需求确保每一次提交,都是一个相对完好的功用修正,并对这次改动做功用描述阐明。 这姿态,代码版别办理中的代码回滚,代码对比,都能够根据改动阐明进行挑选。
多人协作
最终便是多人协作。代码开发过程难免会涉及到多位程序员。多位程序员间的代码需求同步,这个时分就会有一个中心库房的概念。
如图所示。程序员提交代码和拉取最新代码都是经过中心库房来完结的,程序员之间是不会直接相互传递代码的。
这个时分,程序员间的协作过程便是:
- 项目的主工程师,在本地创建好项目架构。在公司服务器上创建好中心库房,把本地创建好的项目架构代码,提交到中心库房。
- 项目其他程序员,从中心库房拉取代码。
- 项目组一切程序员,在本地开发,并提交代码到中心库房,并拉取最新代码。每次有人提交代码到中心库房,一切程序员都要从头拉取最新代码,在本地处理抵触。
分布式版别办理体系
这儿以Git为例。分布式便是相对前面介绍的版别办理体系,在每一位程序员本地多了一个库房。
如图所示。 每一位程序员的本地都有一个本地库房。程序员修正完代码会先将代码提交到本地库房。等机遇适宜,再把本地库房的代码push远程库房。这样就处理了,一般版别办理体系中,每一次提交代码都要通知他人去做代码兼并的状况。 能够看出来,分布式便是把代码的提交和上传分开来了,这样设计所带来的优势是:
- 大多数的操作能够在本地进行,所以速度更快,而且因为无需联网,所以即使不在公司乃至没有在联网,你也能够提交代码、检查前史。然后极大地减小了开发者的网络条件和物理方位的限制(例如,你能够在飞机上提交代码、切换分支);
- 因为能够提交到本地,所以你能够分步提交代码,把代码提交做得更细,而不是一个提交包含许多代码,难以 review 也难以回溯。
当然分布式也有缺点:
- 因为每一个机器都有完好的本地库房,所以初次获取项目的时分会比较耗时,因为需求拉取库房完好的前史,关于一些长时间保护的大项目,会拉取很长时刻。
- 本地存储占用的空间大。因为Git每一个提交存储的都是文件,所以,库房的存储空间占用相对多许多,如果公司项目库房许多,会很快把你的硬盘空间占满。
总结
本节课我们了解了Git是什么,以及他有什么优势劣势。下节课我们讲讲怎么装置、装备、以及快速使用Git。
开启生长之旅!这是我参与「日新方案 2 月更文应战」的第 10 天,点击检查活动概况