背景:
公司内部主要以Git作为版本管理工具,在日常工作中发现大家使用Git很不熟练,而且学习的积极性不高,似乎GIT给人以一种望而却步的感觉。究其根源(个人臆测)有几点:
一、以为GIT相较于SVN新颖很多,是很高端高大上的工具,上手很难;
二、习惯于传统的图形化GUI操作(这应该得利于Windows的全球普及),对于GIT的诸多bash指令没有好感,自动降低了学习和掌握的信心;
三、对GIT整体概念不清晰,或盲目背诵指令,或完全依赖于各种图形化Git工具。
鉴于此,博主希望尽可能的从底层机制来讲解GIT的原理,使得大家能够对GIT有一个宏观的认识,进而打消莫名的恐惧,达到熟练使用GIT进行代码版本管理的目的。本文之前GIT科普系列1:git如何放弃本地working directory的修改,以及回滚、 GIT科普系列2:git代码检出与日常维护、 GIT科普系列3:底层存储机制Internal Objects三篇已经对GIT的底层机制有了一个简单的介绍,此次作为一个总结篇,借助于图解GIT中的示意图再次介绍几个概念,详情如下。
仓库、缓冲区、工作副本:
同样以系列博文GIT科普系列3:底层存储机制Internal Objects中的整体示意图为例,介绍这三个概念。
从上图可以看出 工作副本(之所以叫做工作副本是相对于版本仓库而言的,其实就是你本地的工作目录)、 缓冲区(Stage,或者Index)、 仓库(Commit之后)是三个完全独立的存储空间(当然对于GIT管理系统自身而言,这三个区间的内容都以Content-based方式存储在.git目录下,详情参见博文 GIT科普系列3:底层存储机制Internal Objects)。
下面我们就以 仓库、 缓冲区、 工作副本三个存储空间为基础ÿ