侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论
Git

Git 基础-Git的一些特性介绍

Z同学
2022-03-14 / 0 评论 / 1 点赞 / 253 阅读 / 1,131 字
温馨提示:
本文最后更新于 2022-03-16,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

版本控制逻辑

Git 和其他版本控制工具例如svn等的主要差别在于Git对待数据的方式。

其他版本控制系统大多是以文件变更列表的方式存信息,这种叫做基于差异的版本控制(delta-based)。

image-20220314162139545

而Git 的存储方式并不是这样。而是元数据存储。

image-20220314162253309

在Git中,每当我们提交和存储项目时Git基本上就会对当时的全部文件创建一个快照并存储这个快照的索引。Git对待数据更像是一个快照流。

完整性

Git中的所有的数据都在执行存储之前进行计算和校验。然后之后通过校验值进行引用。而这个计算过程使用的SHA-1散列。这个功能是构建在Git的底层。所以我们如果在传输过程中丢失信息或损坏文件。Git都能知道。

所以Git中存储的信息都是以文件内容的哈希值来索引,而不是文件名。

例如我们通过:git log 指令查询提交记录。

image-20220314163209669

commint 后面为什么会是一串32位的字符的原因了。

Git 一般只添加数据

我们在执行Git操作后,几乎都是只往Git数据库中添加数据。Git几乎不会执行任何可能导致文件不可恢复的操作。

所以,基于这个特性,只要你的代码被提交过。那么你就不用担心是否会因为自己的操作造成提交数据无法恢复。

我们可以放心大胆的使用Git的各种指令,并学习它们的作用。

而当我们使用Git提交文件时,文件主要有以下三种状态:

  • 已提交(committed):表示数据已经安全地保存在本地数据库中。
  • 已修改(modified):表示修改了文件,但是还没有保存到本地数据库中。
  • 已暂存(staged):表示对一个已修改的文件的当前版本做了标记,并将它包含在了下次提交的快照中。

我们可以结合下面这张图做一个了解。

img

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在我们项目的.git文件夹下,按照Git的术语叫做“引用”。但是一般大家还是习惯叫做暂存区。

Git 的命令行和GUI

Git有很多种使用方式,我们可以直接下载安装Git后就可以通过命令行形式开始操作Git并进行工作了。Git 基础 -让我们认识什么是Git,并在windows,linux,macOS中安装git (zinyan.com)

但是如果我们觉得命令操作繁琐,记不住那么多的指令。我们在安装Git命令行模式之后,在通过Git官网可以下载各种GUI工具。

也就是带界面的Git操作软件,它们的本质还是执行的Git的命令行。只是将各种指令集成到了各种操作按钮中了。

image-20220314164457360

我们必须先下载命令行模式的,Git.ext 然后再选择是否下载GUI。

image-20220314174036296

建议选择标注Free的。因为说明该软件是免费的。

(ps:由于习惯了Tortoise了。以前用它的svn版本,现在用它的git版本)。

如果我们针对整个Git的安装和基本知识了解后。就可以开始运行并配置相关的账号信息等数据了。

1

评论区