0 前言
最近开始使用GitHub来管理自己的代码,但是一直对Git系统的工作原理一直比较懵逼,除了无脑记了一些指令和GUI操作方法外,对内部的工作原理,完全一窍不通。终于抽个时间来吧Git系统的工作原理给梳理一遍了,学到了很多东西。我不是很喜欢直接转载别人的帖子,更不喜欢直接抄袭,我比较喜欢吸收消化之后,再以自己的形式展现出来,这样能够督促自己去学习和掌握,因此,这里总结了一下几位大神的帖子,权当做自己的学习笔记吧。
1 Git 系统
1.1 什么是Git?
git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。git是个工具,在Linux里面也就类似gcc这样的工具一样,是一个shell命令。git是 Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
1.2 基本概念和原理
工作区(WorkSpace)
工作区就是我们调试代码的地方,比如各种IDE和编辑器,是我们更新代码的“第一现场”。我们在自己的IDE上调试代码,然后把自己写好的代码提交(commit)到本地或远程Git系统上,这个调试代码的过程就是对工作区的操作。比如我们的Visual Studio就可以看做一个工作区,这里我新建了一个项目CppLearning,方便下面举例。
暂存区(Index/Stage)
每个配置了git系统的项目或者工程当中,都会有一个
.git
文件夹,该文件夹中存放了git系统对于该项目的所有相关文件。 (举个栗子,嗯)
.git
目录下的index