Git版本库暂存区和工作区

Git 工作区、暂存区和版本库 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。 阅读详情

学习git的使用之前先了解一下git的三个基本概念

  • 工作区:顾名思义就是你本地的开发目录
  • 暂存区:英文叫stage, 或index,一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

下图为git的版本库、暂存区和工作区的关系:

图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。在工作区你可以使用git命令进行项目开发,代码更新,代码下载等。

HEAD为一个指向master的游标。

图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

ubuntu18.04在carla中导入Roadrunner自建的地图 进入Carla根目录下的Import文件夹在Import文件夹下面新建一个文件夹 这里我取名为RoadA进入新建的文件夹,创建json文件,json文件的名字与文件夹名字相同再将从RoadRunner中导出的地图文件夹(map)放入新建的文件夹目录下重点关注.fbx和.xodr文件然后打开新建的json文件添加并修改如下代码name为RoadRunner中导出的地图文件夹名字。 阅读详情

相关推荐

数据库原理及应用教程课后习题答案 第4版 微课版 陈志泊主编

数据库原理及应用教程 第4版 微课版 陈志泊主编 习题参考答案

共同学习,心怀感激。 5万+

IDEA中Git的使用

在实际开发过程中版本控制协作开发是很常用的,下面就以实际场景介绍一下IDEA中Git的使用一、创建项目提交到远程1、在IDEA中创建好项目2、选择VCS - &gt; Import into Version Control -&gt; Create Git Repository3、选择本地仓库位置一般和项目源代码目录相同4、将工作区目录添加到本地仓库(右击项目目录Git-&gt;Add)5、Com...

Bonrui编程路 2943

基于51单片机的通讯聊天系统

通过编写51单片机通讯聊天程序,掌握51单片机的各个模块的知识点和运用C语言编写51单片机的能力。用51单片机与口袋开发板设计实现一个单片机与电脑串口助手实现通讯功能的程序。程序的主要功能如下: 1 OLED初始化显示Welcome to Bluetooth communication! 字符串。 2 程序开始时处于接收信息模式, 电脑串口助手发送信息时,将从初始化字符第一个开始显示,电脑串口助手发送信息后,蜂鸣器响铃2秒左右。 3 每次同时按下左右键时,可以轮流切换接收/发送信息模式 4 在发送信息模式时

m0_47419053的博客 3638

Git详细教程(2)---多人协作开发

Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。 如果有多个开发人员共同开发一个项目,如何进行协作的呢。 Git提供了一个非常好的解决方案 ---- 多人协作开发。 1.多人协作原理 典型的做法是,首先创建一个git服务器,被多个人所操作。 1.多人协助实现 分为如下几个步骤: 1.创建一个g...

weixin_30834019的博客 390

西门子触摸屏教程wincc flexible2008 sp5 Smart V3 V4中文版软件

西门子触摸屏教程wincc flexible2008 sp5 Smart V3 V4中文版软件

liang007dudu的博客 1万+

别再手动查日志了!用Dify+Zabbix打造你的专属运维“嘴替”(保姆级配置流程)

本文详细介绍了如何利用Dify平台与Zabbix监控系统集成,构建智能运维对话系统,实现自然语言交互的运维管理。通过保姆级配置流程,帮助运维工程师提升查询效率、降低学习成本,打造企业级智能运维解决方案。

weixin_27298377的博客 456

Git的本地仓库和项目的工作空间不能是一个文件夹

在我们使用smartGit把GitLab上面的项目down下来的时候操作步骤如下 Git本地仓库已存在 此时我们从GitLab上面down项目是操作如下: 第一步:点击smartGit左上角  Repositories → Clone 第二步:复制Gitlab上面的远程地址 第三部,一直next,知道出现出,如下图所示 此时,需要填你的工作空间,以便于存放你的项目。 此处...

qq_40741625的博客 4240

HTML5期末大作业:水果超市网站设计——水果超市(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 网购商城设置网页

HTML5期末大作业:水果超市网站设计——水果超市(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 网购商城设置网页 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大

1712

Git 的工作目录、本地仓库和远程仓库

工作目录:你的编辑环境,包含了项目文件。你在这里进行所有代码的修改。本地仓库:记录了你的所有版本历史,包含已提交的更改。你在完成修改后通过git commit将更改记录到这里。远程仓库:团队共享代码的地方,你可以通过git push和git pull命令与之交互,以同步本地和远程的代码。

weixin_54574094的博客 853

STM32实战:增量式PID控制气体流量(附完整代码与调参技巧)

本文详细解析了如何在STM32平台上实现气体流量控制的增量式PID算法。内容涵盖从系统硬件架构选型、增量式PID算法原理与代码实现,到ADC采样滤波、PWM驱动配置等关键外设驱动,并提供了完整的参数整定技巧与工程调优实战指南,帮助开发者构建稳定可靠的气体流量控制系统。

rose2的博客 617

一文理解近红外光谱数据建模步骤的细节(细节知识总结)

上一篇文章,向入门的同志大体介绍了近红外光谱数据建模的内容,依据上文其实已经可以基本完成数据建模的工作,但是很多工作不够细致,本文便是分享其中的一些技术细节。

weixin_46207310的博客 5567

git 工作区、暂存区的理解

顾名思义,工作区(Working Directory) git 的工作区就是我们的当前的工作目录,如此处的E:\\test_git\\(除.git文件夹)就是我们的工作区,我们修改代码是再当前目录中修改 我们发现有一个.git目录,这个是版本库,不属于工作区范围 暂存区 (Stage) 每当我们git add 的时候,会先将修改的内容添加到暂存区 git commit 之后,则将暂存区中的内容提交的当前分支 附上一张雪峰大大总结的图 ...

秋枫的博客 349

【数据湖仓】:Iceberg、Hudi 和 Paimon 对比

适用于需要多计算引擎支持和复杂查询的离线批处理场景。其中立性和灵活性使其成为构建新型数据平台的理想选择。:在需要高频数据更新和高效小文件管理的场景中表现出色,适合实时数据处理和增量数据更新的业务需求。:专为实时流式数据处理设计,适用于对数据实时性要求高的业务场景,如实时数据分析和实时指标监控。通过以上分析,可以看出 Apache Iceberg、Apache Hudi 和 Apache Paimon 各有其独特的优势和适用场景。企业应根据自身业务需求和技术栈选择合适的数据湖仓方案,以充分发挥其价值。

欢迎来到我的博客,一起探索代码里的世界! 1608

【Git】工作区、暂存区和版本库

暂存区是一个临时存储区域,它包含了即将被提交到版本库中的文件快照,在提交之前,可以选择性地将工作区中的修改添加到暂存区。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。每次提交都会在版本库中创建一个新的快照,这些快照是不可变的,确保了项目的完整历史记录。工作区是本地计算机上的项目目录,在这里进行文件的创建、修改和删除操作。中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。这个操作很危险,会清除工作区中未添加到暂存区中的改动。

m0_75163045的博客 2233

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Git版本控制器】:第二弹——工作区,暂存区,版本库,

Git 跟踪并管理的是修改,而非文件。

路虽远,行则将至!事虽难,做则必成! 5912

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Git核心机制:工作区、暂存区与版本库

本文介绍了Git核心概念与工作机制。第一部分详解Git三区:工作区是编辑目录,暂存区(.git/index)是提交缓冲区,版本库(.git)存储完整历史。三者通过git add和commit命令联动,实现精确版本控制。第二部分解析版本库内部结构:objects数据库存储Blob、Tree、Commit对象,master指向最新提交,HEAD指向当前分支,形成指针链式关系。第三部分通过快递员比喻解释推送机制:Git不会自动合并冲突,需先pull获取远程更新,解决冲突后再push。

祯的博客 2395

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Git】工作区、暂存区与版本库

本篇博文旨在介绍git的工作区,暂存区和版本库的概念;并说明使用git add、git commit 等指令时,对工作区,暂存区以及版本库分别造成的结果; 对于会使用git的人,git add,git commit,git checkout ,git reset这些指令应该很熟悉了 我们一般使用git,修改好文件后,会用git add 文件名,git commit -m 备注这两条指令,...

皓皓松的博客 5719

Git | Git 版本控制 —— 工作区 & 暂存区 & 版本库

在上一章中,我们提到了 “本地版本仓库” 的概念,又讲解了 和 命令,为了让小伙伴更加清楚的理解到这两个命令所做的事,所以本章,笔者将向你介绍一下 Git 文件管理的逻辑结构。本地 Git 仓库主要由两个大部分构成(后续会引入 GitHub,就又复杂一点了):工作区:你当前正在工作的地方版本库:你保存历史修改的地方首先是 “工作区”,记得我们上一章我们 commit 后查看 Git 仓库状态时的回显吗:它跟我们说 “working tree clean”,这里的 working tree 指代的就是工作

Blue17 の 小窝 2074

Git之——Git工作区、版本库和暂存区

Git暂存区(stage)是比较难理解的部分,也是Git的特色之一,那么它和工作区与版本库之间的联系又是怎样的,在这之前,应该先记住如下点: 1、所说的版本库就是隐藏的.git目录。 2、文件 .git/index是记录了文件名、文件的状态信息(时间戳、文件长度等)等的文件索引的目录树。 3、Git 对象库(.git/objects)中保存的是文件索引中所指定的文件实体。 下面

younghz 8407

Git工作区、暂存区和版本库

基本概念 我们先来理解下 Git 工作区、暂存区和版本库概念: 工作区:就是你在电脑里能看到的目录。 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。 下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系: 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区

weixin_43902408的博客 557
上一篇: Centos7配置yum安装源为阿里云镜像
下一篇: 创建Git仓库
random_w
博客等级 码龄9年 130粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值