整体介绍
Git 又叫做分布式版本控制系统
我用《只狼》这个游戏的例子来通俗的解释它
在代码的管理上,团队的协作上都发挥着重要的作用
一个小时时间你就能使用它
什么是Git
定义:Git 是一个分布式版本控制系统
当你问起会使用Git的人,那他们可能回答的就是如上定义,还是一头雾水?
那到底什么是「分布式」 什么又是「版本」,什么又是「控制」呢?
版本控制是什么?
我通俗的来解释一下,什么是「版本控制」:
大家打过一些存档的游戏吧,《只狼》这个角色扮演游戏以它超高的难度著称(我最后是开着挂把苇名一心干掉的,太羞耻了):
一开始一无所有,然后接任务,闯关,升级,刷装备从一无所有到所向披靡,但是常常会有这样一个操作,就是完成某个章节之后,到一个地方给你回血存档,为什么要这么做呢?
原因大家都明白,如果我技术高超一下打到了最后一关,结果一个BOSS把我干掉了,我难道又回到第一关的时候吗?只狼如果这么做,那这个游戏可能没法玩了。
存档就相当于给某个时间点加了一个标签,我在游戏中死了,我可以回到最近的标签
「版本控制」也是这个道理,在你管理你的代码,升级你的代码的时候,难免会有一些错误,如果说你没有意识到错误的存在,一直往后写,最后程序出错,发现错误的代码在一个核心的地方,只有从头开始改,那是很痛苦的,所以一般在正确的时候做一个节点标记,如果出错我可以回到那个节点,至少前面的代码都是正确的
这就是「版本控制」
什么又是分布式呢?
如果用游戏的角度来讲,大概就是单机游戏和联网的游戏的区别。
在Git之前有很多版本管理的系统,但是他们都是集中式的,比如SVN,他们需要一个专门的服务器,来做代码管理,如果没有网络的情况下,就无法进行代码管理
Git就不需要这个要求,无论有没有网络,只要安装了Git,都能够进行代码管理
为什么要学习它
其实通过上面的讲解,应该多多少少知道为什么要做「版本控制」?以及「分布式」
实际上Git他的优势有很多,在「版本控制」这一点来说,它能够记录每个版本之间的差异,什么时候修改了,什么时候删除了,你可以在任何版本之间切换,总结一下
Git的优点有如下:
-
免费·开源:
说到这点,需要提到一个人,Linus,Linux内核的作者:
Git也是由他一手用C语言写的,仅用了10天时间,2005年问世,当时是为了对版本控制Linux内核的代码,在Git之前使用的是一个叫做BitKeeper这个商用版本控制系统,因为当时主张的开源,BitKeeper受到质疑,2005年,Linux内核团队和BitKeeper团队发生矛盾(社区有极客逆向破解了BitKeeper),BitKeeper收回使用权。Linux决定自己开发一个版本控制系统,10天之后,Git问世,成为业界主流,当然BitKeeper也凉凉了,Git不仅免费,而且代码也是开源的。
-
速度快,档案体积小:
-
由于Git是C语言开发,C语言本身速度就相当快
-
档案体积小:
假如每个版本都保存一个文件,那可能很占用硬盘空间,而且文件杂乱无章,难以管理
但Git采用的是一个叫快照的方法,Git能够快速切换版本,且快照体积小
-
-
分布式版本管理系统:
随时随地,对代码进行版本管理,同时也可以在服务器上管理
-
在没有网络的时候,在本地管理
-
在有网络的时候,在服务器上管理
GitHub,2008年上线,这个全球最大的程序员社区,就是基于Git这个工具的版本控制网站,你可以在有网络的时候,把代码上传到GitHub上面进行储存
-
根据这一篇文章,你应该理解什么是Git了,那么下一篇就是硬核的命令,我们来看看,具体用这些命令,怎么实现,「版本控制」,『分布式』。
希望你有所收获~