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

2024-08-25 18:38
文章标签 工作 版本 git 暂存区

本文主要是介绍【Git】工作区 暂存区 版本库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇博客总结了一下git的常用命令,而在命令的操作背后,其实影响的是不同的工作区域。git的工作区域分为三个部分,分别为:工作区,暂存区和版本库。

一. 基本概念

  1. 工作区(working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹时,这个文件夹里的内容就是工作区;
  2. 版本库(repository):当工作区生成后,可发现.git,这个就是版本库;
  3. 暂存区(stage / index):用来暂时存放工作区中修改的内容。

二. 工作图概览
这里写图片描述

  1. 什么是Object:Object是git对象库,是用来存储各种创建的对象以及内容;
  2. 什么是Master:Master即为主分支,当我们git init后,并不会立刻产生分支,而是在我们添加文件,git add , git commit 之后,才会看到master分支。
  3. 什么是HEAD:HEAD是一个引用,引用的是当前的分支。如果当前处于master分支,那么HEAD就会指向master,如果切换到dev或其它分支,则是指向切换到的分支。

三. 常用操作命令对不同区的影响

  1. git add :将对应更改的文件添加到暂存区,暂存区中的目录树会更新;
  2. git commit :将暂存区做出的修改提交到版本库中,这是master指向的分支被更新;
  3. git reset HEAD:暂存区的内容会被版本库的内容覆盖;
  4. git checkout –file:将工作区指定修改的文件被暂存区的内容覆盖(消除所有工作区进行的改动);
  5. git rm –cached:直接从暂存区将文件进行删除,不会影响工作区的内容;
  6. git checkout HEAD –file:将版本库中的对应的文件内容直接替换工作区和暂存区中的该文件。

四. 查看三个分区的区别

  1. git diff :查看工作区和暂存区的区别
  2. git diff –cached:查看暂存区和版本库之间的区别;
  3. git diff HEAD:查看工作区和版本库之间的区别;

五. 为什么需要暂存区

假设一个场景,当自己开发需求到一半,没有commit到版本库时,突然需要先紧急处理下线上的bug,但一时还不能完成手里的开发任务,这时,也不能commit提交给版本库,避免对其它人的影响。所以,如果没有一个暂存区,我们修改的文件只可以立刻保存到版本库中。

上述场景,我们利用git的暂存区,问题就可以很容易地处理,使用步骤如下:

  1. git stash :将自己工作区地修改内容隐藏
  2. 新建一个bug分支,处理bug
  3. 处理完成后,使用git stash pop将修改地内容重新移入到工作区
  4. 继续开发工作

这篇关于【Git】工作区 暂存区 版本库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106342

相关文章

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工