工作区、暂存区、仓库三者关系

article/2025/9/22 18:23:47

区分三者关系

       Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理解。

       在初始化git版本库之后会生成一个隐藏的文件 .git ,可以将该文件理解为git的版本库 repository,而我们自己建立的项目文件夹即工作区 working directory ,在.git 文件夹里面还有很多文件,其中有一个index 文件 就是暂存区也可以叫做 stage ,git还为我们自动生成了一个分支master以及指向该分支的指针head ,如下图   

       

       从图中可以看出来respository包括分支master和stage, working diretory 可以理解为我们打开开发环境如eclipse,里面的内容即工作区的内容,在工作区里面有的代码以及配置文件等我们需要提交到版本库里面,最终是到了分支master上面,暂存区只是一个临时保存修改文件的地方。

       实例讲解

       平时我们使用的命令git add file1 是把文件从工作区提交到暂存区,git commit -m "prompty" file1 是把文件从暂存区提交到了分支master下面,这里因为只有一个分支master,就提交到master上了,下面让我们再来结合具体例子来说明一下。

       我们修改一下tgb.txt文件增加一行 "l love you" ,并新建一个文件 test1.txt,现在还没有执行git add命令,这种修改都还停留在工作区内,用git status查看状态,如图

      

       上图表明修改并没有在暂存区里面,当我们执行git add test1.txt ,git add tgb.txt后,再来看一下状态

        

      这两个文件被添加到了暂存区,但是还没有提交,当执行git commit -m "tijiao" 后文件即从暂存区到了master分支上面,如图将看不到暂存区里面有什么内容。

     

      Git管理的是添加到暂存区里面的修改,包括增删改等等都算是可以跟踪的文件变动,也可以说git只管理我们变动的部分变动的我们才往暂存区提交,这也是git比其他版本系统设计优秀的一点,以后,会详细说一下各个版本系统管理文件是如何管理的,他们的设计思想是什么。

       通过三个命令理解

      下面还有一个需要注意的git diff 命令的差异:

  git diff 比较的是工作区和暂存区的差别
  git diff --cached 比较的是暂存区和版本库的差别
  git diff HEAD 可以查看工作区和版本库的差别

      通过一个添加文件既可以明显看出他们之间区别,不过这里有一个前提是已经提交到暂存区的文件修改的时候才可以看出明显区别,这也是以为啥git只能跟着提交到暂存区的文件,如果只是在工作区新建一个文件,那么输入这三个命令都没有结果为空白。

      我们继续修改tgb.txt,在文件末尾添加  we are good boy.

      分别输入三个命令,效果为:

      

      从图中可以看出,工作区与暂存区、工作区与版本库都有变化,而版本库与暂存区并没有变化。进一步执行git add tgb.txt 

        

      执行git add tgb.txt之后发现git diff没有输出内容,表明工作区与暂存区已经同步,暂存区与版本库、版本库与工作区没有同步。最后一步执行git commit 

         

       当执行完git commit后,三个命令都没有输出结果,表明我们修改的文件已经被同步的版本库,已经被版本库管理起来了。

总结:

       版本库管理文件会很方便尤其是代码,等好多的命令熟了之后也会觉得并不是那么难用,主要使用的时候觉得git反应比较快,而且速度还可以,现在很多人都在window开发而喜欢具有界面的版本工具软件,而不去学习git命令,学习一些git 命令还是很有用的,假如让你去linux上面开发或者在linux系统上面管理代码,你就会完全束手无策不懂原理也不懂命令,需要从新学习从新认识git。

       可以说各种命令是git的根本,学习了命令无论哪一个界面管理工作一看也就会了,现在有好多的git可视化工具,不如学几个命令,况且再多的界面底层也是调用这么多的命令来实现的,有了界面就让我们变懒了,降低了开发者的水平,提高开发效率的同时也失去了更多的学习、研究机会。


http://chatgpt.dhexx.cn/article/TQ1BhSvh.shtml

相关文章

浅谈MYSQL中的基本表、中间表、临时表、派生表和视图

简单介绍 首先我们先了解一下什么叫虚拟表虚拟表,顾名思义就是就是实际上并不存在(物理上不存在),但是逻辑上存在的表。 在MYSQL中存在三种虚拟表:临时表、内存表、视图 1、基本表 基本表是本身独立存在的表&#x…

常见的系统间接口方式(02)-中间件的数据接口模式

导读: 原文路径:https://mp.weixin.qq.com/s/uq9DfxE5_cvAsitqlcblBg 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。 愿大家的学习,轻松且愉快。 如果大家觉得有用&…

python matlab库使用_python matlab库

python与matlab的优缺点比较matlab主要是用来做数值计算的(矩阵,向量是强项),当然还加入了其他的许许多多的库。主要用来模拟一些东西。 python是一门语言,现在也有模拟matlab的库,不过功能显然还是很弱的。 python与matlab哪个简单 简单对比: python和matlab的共同点都是…

MYSQL:创建中间表

mysql> create table role_to_privilege( -> id int primary key auto_increment, -> rId int not null, -> pId int not null -> ); Query OK, 0 rows affected (0.09 sec)

中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。 中间表来源 1. 计算逻辑复杂 在 OLAP(报表或查询)业务中&…

mysql 中中间表是什么意思_为什么会有这么多中间表?

中间表的由来 中间表是数据库中专门存放中间计算结果的数据表。报表系统中的中间表是普遍存在的。那么,这些中间表是如何出现的?为什么中间表会越来越多?中间表会给项目组带来什么样的困扰,如何解决这些困扰?这里我们就尝试探讨一下这个问题。 中间表出现的典型场景主要有…

IT 接口对接:足迹第十二步接口对接的定义(接口对接分三种:中间库方式的接口对接,Rest格式URL对接和HTTP格式URL对接;)

1)接口对接的定义:服务端通过暴露地址/参数名称/编码,指引客户端发送一个Rest风格的URL请求,服务端读取Rest风格的URL,并返回一个响应; 接口有四部分组成:方法、uri、请求参数、返回参数&#…

MSSQL中间库对接MySQL

需要下载MySQL ODBC数据源驱动程序, 在MSSQL所在服务器安装MySQL ODBC数据源驱动程序,安装完成之后,在【控制面板】->【工具管理】->【ODBC数据源(64bit)/ODBC数据源(32bit)】->【系统DSN】->【添加】下多了MySQL数据源的驱动程…

四点流程做好商机管理

企业想做好商机管理,仅凭员工是做不到的,借助CRM销售管理系统是比较明智的选择。接下来小编从客户信息管理、业务进程跟踪、设置提醒、销售漏斗等方面讲讲企业如何做好商机管理。 只有提高商机的转化率,企业的利润才会增长。想做好商机管理&…

想通过互联网创业,如何找到商机项目创业呢

很多人都像在互联网上创业,但是互联网创业看着简单,其实挺考验一个人的眼力和思维能力,最重要是经验,今天不说什么理论方面的,只说一个简单牛逼的方法 首先你创业目的是为了什么? 拯救世界?做…

与山东云蚁旅游一起,发现旅游行业的无限商机和潜力!

随着人们生活水平的不断提高,旅游业迅猛发展已成为大势所趋。山东云蚁旅游作为一家专业的旅游服务机构,一直致力于为广大消费者提供最优质的旅游服务,在市场上享有良好的声誉和知名度。 如今,随着旅游市场的进一步开放和竞争加剧…

把信息变成商机

在商界的高层管理人员看来,公司中充斥着各种各样的信息。他们试图对这些信息进行管理和利用,从而为决策、财务管理和客户服务提供支持。 但是他们没有意识到,即便能够实现上述目标,他们也仅仅只是赶上了昨天的步伐而已。信息的发展…

旅游发现商机,他开店依靠创意经营,月收入高达万元

在自己创业之前,黄建均在某厂当电器维修工,工作辛苦而且收入不高。自己创业做生意,他"想都没想过"。 几年前,黄建均一家人外出旅游。在某景区,他发现一个不起眼的小店外排着长龙--60多岁的老人和3岁的孩童排…

什么是企业商机管理 管理销售商机流程方法

现代企业发展道路上,市场竞争愈演愈烈,很多企业都开始重视客户信息化管理来促成销售交易,在销售管理中的商机需按照轻重缓急进行分类、跟进、监控,才能对商机进行有效管理。 从某种程度上来说,一个订单成功与否的关键…

这两年大量实体店灭亡,那么商机来了,什么东西又会崛起?

我认为实体店不会灭亡,虽然这几年看到好多沿街商铺都关门了,但这只是一部分,这一部分为什么会倒闭; 一,是不断上涨的店租金和人工成本的上升; 二,网络电商价格越来越透明化,这时期出…

如何寻找商机线索

企业在寻找商机线索时,要“天时地利人和”,也就是正确的产品和服务,正确的价格,正确的地点和时间,正确的客户和正确的渠道。那么,企业如何寻找商机线索? 前言 对于企业来说,寻找商机…

数据中的商机

“与数据同行”开通了微信群,分为数据仓库、数据分析、产品经理、数据治理及机器学习五大专业,现已汇聚了4000位小伙伴了,加微信号:frank61822702 申请入群。 正文开始 下面是一篇字数为34639字的深度长文,它的长度明显…

解决ubuntu打不开软件更新器和软件中心的问题

打不开可能是软件源的问题,试试: sudo gedit /etc/apt/sources.list 然后把第三方软件源全部删除掉,重启软件更新器. 如果能够启动,但有提示请检查网络连接的信息,那么点设置,在其它软件选项卡看情况取消勾选一些软件源,可以先只保留Canonical合作伙伴试试: 然后切换到Ubunt…

Ubuntu软件中心不显示软件解决办法

18.04版本的Ubuntu有的会出现软件中心打开是没有软件,空白的,如图所示: 有效解决办法: 终端输入: sudo apt update sudo apt upgrade sudo systemctl reboot如果文章对你有帮助,不要忘了给我点个赞吼(&am…

linux ubuntu软件中心,Ubuntu软件中心

ubuntukylin软件中心是专为Ubuntu Kylin用户制作的一款软件下载中心,和国内几种大型软件管家很是相似,不过ubuntukylin软件中心是支持Linux系统的。 更新日志 1、推荐软件的自动提醒功能:开机后判断若干推荐软件(搜狗输入法、WPS办公软件、金…