Git 的原理简介和常用命令
和 是我们最常用的版本控制系(, ),当然,除了
这二者之外还有许多其他的 ,例如早期的 等。顾名思义,版本控制系统主要就是
控制、协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件、图片文件等
等。早期 占据了绝大部分市场,而后来随着 的出现,越来越多的人选择将它作为
版本控制工具,社区也越来越强大。相较于 ,最核心的区别是 是分布式的 ,简
而言之,每一个你 下来的 仓库都是主仓库的一个分布式版本,仓库的内容完全一样,
而 则不然,它需要一个中央版本库来进行集中控制。采用分布式模式的好处便是你不
再依赖于网络,当有更改需要提交的时候而你又无法连接网络时,你只需要把更改提交到
本地的 仓库,最后有网络的时候再把本地仓库和远程的主仓库进行同步即可。当然,
分布式和非分布式各有各的优缺点,但是目前来看,分布式的 正逐渐被越来越多的人
所接受并推广。本文主要对 的基本原理和常用命令进行简介,试图从底层来说明 是
如何工作的,从而帮助大家理解上层命令在执行的时候背后所产生的动作和变化。原理部
分的内容可以参考
做进一步的了解,而常用的命令可以参考其他的资料。本文的总
结根据自己的理解进行描述,如果错误,请不吝赐教。
Git 的基本原理
本质上, 是一套内容寻址()文件系统,而和我们直接接触的
界面,只不过是封装在其之上的一个应用层。这个关系颇有点类似于计算机网络中应用
层和下属层的关系。在 中,那些和应用层相关的命令(也就是我们最常用的命令,如
、 等),我们称之为 命令(瓷器之意,意为成品、高级命令);
而和底层相关的命令(几乎不会在日常中使用,如 、 等),
则称之为 命令(管道之意,是连接 应用界面和 底层实现的一个管道,类似
于 ,底层命令)。要了解 的底层原理,就需要了解 是如何利用底层命令来实现
高层命令的。在此之前,让我们先来看一下 的目录结构,和各个文件在 中的作用。