版本控制逻辑
Git 和其他版本控制工具例如svn等的主要差别在于Git对待数据的方式。
其他版本控制系统大多是以文件变更列表的方式存信息,这种叫做基于差异的版本控制(delta-based)。
而Git 的存储方式并不是这样。而是元数据存储。
在Git中,每当我们提交和存储项目时Git基本上就会对当时的全部文件创建一个快照并存储这个快照的索引。Git对待数据更像是一个快照流。
完整性
Git中的所有的数据都在执行存储之前进行计算和校验。然后之后通过校验值进行引用。而这个计算过程使用的SHA-1散列。这个功能是构建在Git的底层。所以我们如果在传输过程中丢失信息或损坏文件。Git都能知道。
所以Git中存储的信息都是以文件内容的哈希值来索引,而不是文件名。
例如我们通过:git log 指令查询提交记录。
commint 后面为什么会是一串32位的字符的原因了。
Git 一般只添加数据
我们在执行Git操作后,几乎都是只往Git数据库中添加数据。Git几乎不会执行任何可能导致文件不可恢复的操作。
所以,基于这个特性,只要你的代码被提交过。那么你就不用担心是否会因为自己的操作造成提交数据无法恢复。
我们可以放心大胆的使用Git的各种指令,并学习它们的作用。
而当我们使用Git提交文件时,文件主要有以下三种状态:
- 已提交(committed):表示数据已经安全地保存在本地数据库中。
- 已修改(modified):表示修改了文件,但是还没有保存到本地数据库中。
- 已暂存(staged):表示对一个已修改的文件的当前版本做了标记,并将它包含在了下次提交的快照中。
我们可以结合下面这张图做一个了解。
暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在我们项目的.git文件夹下,按照Git的术语叫做“引用”。但是一般大家还是习惯叫做暂存区。
Git 的命令行和GUI
Git有很多种使用方式,我们可以直接下载安装Git后就可以通过命令行形式开始操作Git并进行工作了。Git 基础 -让我们认识什么是Git,并在windows,linux,macOS中安装git (zinyan.com)
但是如果我们觉得命令操作繁琐,记不住那么多的指令。我们在安装Git命令行模式之后,在通过Git官网可以下载各种GUI工具。
也就是带界面的Git操作软件,它们的本质还是执行的Git的命令行。只是将各种指令集成到了各种操作按钮中了。
我们必须先下载命令行模式的,Git.ext 然后再选择是否下载GUI。
建议选择标注Free
的。因为说明该软件是免费的。
(ps:由于习惯了Tortoise了。以前用它的svn版本,现在用它的git版本)。
如果我们针对整个Git的安装和基本知识了解后。就可以开始运行并配置相关的账号信息等数据了。
评论区