Git 是目前主流的版本控制系统之一,也是世界上最先进的分布式版本控制系统,每个程序员都需要将其掌握
版本控制
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。其主要作用是追踪文件的变更,方便查看历史记录、备份和恢复历史版本。
目的
- 实现跨区域多人协同开发
- 并行开发,提升开发效率
- 追踪和记载文件的迭代记录
- 统计工作量
- 管理历史版本,减少人为错误
版本控制的分类
本地版本控制
将本地电脑作为版本控制器,在每次对文件做出改动的时候,人为的做一个版本标记,不提交到服务器上,仅适合个人使用,代表:RCS
集中式版本控制
所有数据都存放中央服务器中,当开发者需要数据时,必须从中央服务器拉取数据,这意味着没有从服务器拉取最新版本数据时,本地终端将只有以前同步的数据,而没有其他协同者提交的数据,若用户没有联网,则不能查看历史版本,若中央服务器损坏,则其他开发者将没有后面的数据,代表:SVN
分布式版本控制
每个终端都拥有服务器全部的数据,用户可以随时查看历史版本,在未联网的情况下,也可将新的版本信息提交到本地版本库中,等联网之后直接push到远程服务器即可,代表Git
由于每个用户都拥有服务器的全部数据,保证了不会因服务器崩溃而导致数据丢失,但同时也有可能造成代码泄露,且所有信息都存放本地终端,极大的占用了本地存储空间
Git和SVN的区别
- SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把最新版本推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
- Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的∶比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!