GIT的组成部分(上)

简介: GIT的组成部分(上)

GIT由三个部分组成


image.png

  • 工作区
存放当前操作文件的本地文件系统目录
a、在工作区可随意添加或编辑文件
  • 暂存区
b、将修改后的文件添加到暂存区
  • 提交历史
c、并记录到提交历史


工作区


image.png


Git 可以把工作区中的文件处理压缩成一个提交对象
也能将取得的提交对象解包成文件同步到工作区中


暂存区


image.png

a、在工作区可能会同时更改多个完全不相干的文件
b、将它们分别放入暂存区
c、在不同的提交中加入提交历史
d、暂存区还用于合并冲突时存放文件的不同版本

image.png

a、刚初始化的Git仓库 暂存区是空的
b、然后会填充最近一次提交所对应的文件快照

git status

image.png

将工作区的文件与暂存区的文件快照进行对比
并提示我们有哪些做了修改的文件尚未加入暂存区

不同的区对应不同的实体

image.png

a、工作区有可见的文件系统目录
b、暂存区的实体是位于 .git 目录的 index 文件
c、提交历史通过 .git/objects 目录保存着所有提交对象

Index 文件


image.png

index 是一个二进制文件
包含着一个由路径名称、权限和 
blob 对象的 SHA-1 值组成的有序列表

元数据

包含
a、每个文件的创建时间
b、最后修改时间等元数据
c、指向实际的数据对象的引用
d、保存了一份完整的文件快照
因此可以通过对比SHA-1校验和
实现与工作区文件之间的快速比较

查看index中的内容

git ls-files --stage

image.png

相关文章
|
7月前
|
人工智能 物联网
VideoPainter:开源视频修复神器!双分支架构一键修复,对象身份永久在线
VideoPainter 是由香港中文大学、腾讯ARC Lab等机构联合推出的视频修复和编辑框架,基于双分支架构和预训练扩散模型,支持任意长度视频的修复与编辑,具备背景保留、前景生成、文本指导编辑等功能,为视频处理领域带来新的突破。
320 12
|
10月前
|
缓存 安全 Java
Java volatile关键字:你真的懂了吗?
`volatile` 是 Java 中的轻量级同步机制,主要用于保证多线程环境下共享变量的可见性和防止指令重排。它确保一个线程对 `volatile` 变量的修改能立即被其他线程看到,但不能保证原子性。典型应用场景包括状态标记、双重检查锁定和安全发布对象等。`volatile` 适用于布尔型、字节型等简单类型及引用类型,不适用于 `long` 和 `double` 类型。与 `synchronized` 不同,`volatile` 不提供互斥性,因此在需要互斥的场景下不能替代 `synchronized`。
3260 3
|
缓存 Java Spring
解决IDEA报错:无法检索应用程序 JMX 服务 URL[Failed to retrieve application JMX service URL]亲测可用
解决IDEA报错:无法检索应用程序 JMX 服务 URL[Failed to retrieve application JMX service URL]亲测可用
3069 1
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之程序初始化mysql没有完成就报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
471 58
|
11月前
|
前端开发 JavaScript API
前端界的革命性突破:掌握这些新技术,让你的作品引领潮流!
【10月更文挑战第30天】前端技术日新月异,从传统的HTML、CSS、JavaScript到现代的React、Vue、Angular等框架,以及Webpack、Sass等工具,前端开发经历了巨大变革。本文通过对比新旧技术,展示如何高效掌握这些新技术,助你作品引领潮流。
206 2
|
JavaScript 前端开发 NoSQL
使用Node.js进行后端开发入门
【8月更文挑战第10天】恭喜你完成了Node.js后端开发的入门之旅!这只是个开始,Node.js的世界远比这广阔。随着你对Node.js的深入学习和实践,你将能够构建更复杂、更强大的后端应用。不断探索、学习和实践,你将在Node.js的道路上越走越远。
|
easyexcel
你要的不固定列excel导入导出,它来啦!(三)
在上篇文章中,我们简单的介绍了 excel 导入导出技术实践方案,就目前而已,使用最多的开源框架主要有以下三类,分别是:
1132 0
你要的不固定列excel导入导出,它来啦!(三)
|
存储 弹性计算 运维
阿里云轻量应用服务器与标准型阿里云服务器ECS全面对比(配置、价格)
随着云计算技术的蓬勃发展,阿里云作为业界的佼佼者,推出了多样化的云服务器产品以满足不同用户群体的需求。在这些产品中,阿里云轻量应用服务器与标准云服务器(ECS)因其各自的特点而备受关注。下面,我们将从多个角度对这两款产品进行深入剖析,以帮助您更好地选择适合自身需求的云服务器。
1190 2
|
传感器 物联网 大数据
信管知识梳理(四)新一代信息技术介绍
新一代信息技术产业包括:大数据、云计算、互联网+、物联网、智慧城市等是新一代信息技术与信息资源充分利用的全新也态,是信息化发展的主要趋势,也是信息系统集成行业今后面临的主要业务范畴。
505 0
信管知识梳理(四)新一代信息技术介绍
|
Linux
嵌入式 Linux 与linux启动时自动加载模块
<div class="bct fc05 fc11 nbw-blog ztag">一、在ARM linux 下,一般而言,产品在启动的过程中应该加载模块,最简单的方法是修改启动过程的rc脚本(/etc/init.d/rcS),增加ismod /../xxx.ko这个命令。例如:加载/lib/modules/2.6.26.5/s3c2410_buttons)<br> <br>cd /lib/mo
2257 0