git中文件的状态状态切换
文件的状态分类
Git 中文件的状态主要分为以下几种:
-
Untracked(未跟踪)
-
定义:这些文件从未被 Git 跟踪过,通常是因为它们是新创建的文件,或者被
.gitignore
排除在外。 -
示例:新创建的文件
newfile.txt
,或者被.gitignore
排除的文件temp.log
。
-
-
Tracked(被跟踪)
-
定义:这些文件已经被 Git 添加到版本控制中,Git 会记录它们的修改。
-
进一步分类:
-
Unmodified(未修改):文件自上次提交后没有被修改。
-
Modified(已修改):文件自上次提交后被修改了,但尚未添加到暂存区。
-
Staged(已暂存):文件被修改后,通过
git add
添加到暂存区,准备提交。
-
-
3. git ls-files
这个命令用于显示已经被跟踪的文件,包括加入暂存区和已经提交的.
在 Git 中,文件的状态是指文件相对于 Git 仓库的当前情况。以下是一些常见的文件状态及其含义:
-
未跟踪(Untracked):
-
这是新创建的文件或从其他位置复制过来的文件,Git 还没有开始跟踪这些文件的更改。
-
这些文件不会出现在
git status
命令的 "Changes to be committed" 部分,而是出现在 "Untracked files" 部分。
-
-
已修改(Modified):
-
文件已经被修改,但还没有添加到暂存区。
-
这些文件出现在
git status
命令的 "Changes not staged for commit" 部分。
-
-
已暂存(Staged):
-
文件的修改已经被添加到暂存区,准备在下一次提交时被保存到仓库历史记录中。
-
这些文件出现在
git status
命令的 "Changes to be committed" 部分。
-
-
已提交(Committed):
-
文件的更改已经被提交到本地仓库,成为仓库历史记录的一部分。
-
提交后的文件不再出现在
git status
命令的输出中,除非你再次修改它。
-
文件状态的切换:
-
未跟踪(Untracked)-> 已暂存(Staged):
-
使用
git add <file>
命令将未跟踪的文件添加到暂存区。 -
或者,使用
git add .
命令将所有未跟踪的文件和已修改的文件添加到暂存区。
-
-
已修改(Modified)-> 已暂存(Staged):
-
使用
git add <file>
命令将已修改的文件添加到暂存区。
-
-
已暂存(Staged)-> 已修改(Modified):
-
使用
git reset <file>
命令将已暂存的文件从暂存区移除,使其回到已修改状态。
-
-
已暂存(Staged)-> 未跟踪(Untracked):
-
这种情况通常不会发生,因为文件一旦被添加到暂存区,Git 就开始跟踪它了。但是,你可以使用
git rm --cached <file>
命令从暂存区和 Git 仓库中删除文件,使其回到未跟踪状态。
-
-
已修改(Modified)-> 未跟踪(Untracked):
-
这种情况也不会发生,因为文件一旦被修改,Git 就开始跟踪它了。但是,你可以使用
git checkout -- <file>
命令将文件恢复到最后一次提交的状态,或者使用git rm <file>
命令从工作目录中删除文件。
-
-
已提交(Committed)-> 已修改(Modified):
-
修改已提交的文件,使其成为已修改状态。
-
-
已提交(Committed)-> 未跟踪(Untracked):
-
删除已提交的文件,使其成为未跟踪状态。
-
具体状态解释
Changes not staged for commit(已修改但未暂存)
-
状态:Modified(已修改)
-
含义:这些文件已经被 Git 跟踪(即之前被添加到版本控制中),但自上次提交后被修改了,且尚未通过
git add
添加到暂存区。 -
示例:
bash复制
git status
输出:
复制
On branch main Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: README.md
这里,
README.md
是一个被跟踪的文件,但它被修改了,且尚未暂存。
Changes to be committed(已暂存)
-
状态:Staged(已暂存)
-
含义:这些文件已经被修改,并且通过
git add
添加到了暂存区,准备在下一次提交时被记录到版本历史中。 -
示例:
bash复制
git add README.md git status
输出:
复制
On branch main Changes to be committed:(use "git reset HEAD <file>..." to unstage)modified: README.md
这里,
README.md
已经被修改并暂存,准备提交。
状态转换
-
从 Untracked 到 Tracked(通过
git add
)-
新文件
newfile.txt
是未跟踪的。 -
使用
git add newfile.txt
后,文件进入暂存区(Staged),并开始被跟踪。
-
-
从 Tracked 到 Modified
-
文件
README.md
已经被跟踪。 -
如果你修改了
README.md
,但尚未运行git add
,文件状态变为 Modified(已修改但未暂存)。
-
-
从 Modified 到 Staged
-
修改后的文件
README.md
处于 Modified 状态。 -
使用
git add README.md
后,文件状态变为 Staged(已暂存)。
-
-
从 Staged 到 Committed
-
暂存区中的文件
README.md
通过git commit
提交后,文件状态变为 Committed(已提交)。
-
总结
-
Changes not staged for commit:文件已经被跟踪(Tracked),但被修改后尚未暂存(Modified)。
-
Changes to be committed:文件已经被跟踪(Tracked),并且修改后已经暂存(Staged)。
-
修改文件内容:如果文件已经被跟踪,修改文件内容后,文件状态会从 Unmodified 变为 Modified。通过
git add
添加到暂存区后,状态变为 Staged。
相关文章:
git中文件的状态状态切换
文件的状态分类 Git 中文件的状态主要分为以下几种: Untracked(未跟踪) 定义:这些文件从未被 Git 跟踪过,通常是因为它们是新创建的文件,或者被 .gitignore 排除在外。 示例:新创建的文件 new…...
解决php8.3无法加载curl扩展
把它的值更改为扩展存在的目录的绝对路径(扩展存在的目录为有php_xxx.dll存在的目录) extension_dir "e:\serv\php83\ext" 然后从php根目录复制 libssh2.dll 和 libcrypto-*.dll 和 libssl-*.dll 到Apache根目录下的bin目录 重启apache服务即可...
三路排序算法
三路排序算法 引言 排序算法是计算机科学中基础且重要的算法之一。在数据分析和处理中,排序算法的效率直接影响着程序的执行速度和系统的稳定性。本文将深入探讨三路排序算法,包括其原理、实现和应用场景。 一、三路排序算法的原理 三路排序算法是一…...

入行FPGA设计工程师需要提前学习哪些内容?
FPGA作为一种灵活可编程的硬件平台,广泛应用于嵌入式系统、通信、数据处理等领域。很多人选择转行FPGA设计工程师,但对于新手来说,可能在学习过程中会遇到一些迷茫和困惑。为了帮助大家更好地准备,本文将详细介绍入行FPGA设计工程…...

DBASE DBF数据库文件解析
基于Java实现DBase DBF文件的解析和显示 JDK19编译运行,实现了数据库字段和数据解析显示。 首先解析数据库文件头代码 byte bytes[] Files.readAllBytes(Paths.get(file));BinaryBufferArray bis new BinaryBufferArray(bytes);DBF dbf new DBF();dbf.VersionN…...

html基本结构和常见元素
html5文档基本结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>文档标题</title> </head> <body>文档正文部分 </body> </html> html文档可分为文档头和文档体…...

JAVAweb学习日记(十) Mybatis入门操作
一、介绍 二、快速入门程序 三、入门-数据库连接池 四、入门-lombok工具包...

从Transformer到世界模型:AGI核心架构演进
文章目录 引言:架构革命推动AGI进化一、Transformer:重新定义序列建模1.1 注意力机制的革命性突破1.2 从NLP到跨模态演进1.3 规模扩展的黄金定律 二、通向世界模型的关键跃迁2.1 从语言模型到认知架构2.2 世界模型的核心特征2.3 混合架构的突破 三、构建…...

Rk3588芯片介绍(含数据手册)
芯片介绍:RK3588是一款低功耗,高性能的处理器,适用于基于arm的PC和边缘计算设备,个人移动互联网设备和其他数字多媒体应用,集成了四核Cortex-A76和四核Cortex-A55以及单独的NEON协处理器 视频处理方面:提供…...
java开发面试自我介绍模板_java面试自我介绍3篇
java 面试自我介绍 3 篇 java 面试自我介绍篇一: 我叫赵,我的同学更都喜欢称呼我的英文名字,叫,六月的 意思,是君的谐音。我来自安徽的市,在 21 年我以市全市第一名 的成绩考上了大学,…...

w193基于Spring Boot的秒杀系统设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

chrome浏览器chromedriver下载
chromedriver 下载地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的链接有和当前发布的chrome浏览器版本相近的chromedriver 实际使用感受 chrome浏览器会自动更新,可以去下载最新的chromedriver使用,自动化中使用新的chromedr…...

【HTML入门】Sublime Text 4与 Phpstorm
文章目录 前言一、环境基础1.Sublime Text 42.Phpstorm(1)安装(2)启动Phpstorm(3)“启动”码 二、HTML1.HTML简介(1)什么是HTML(2)HTML版本及历史(3)HTML基本结构 2.HTML简单语法(1)HTML标签语法(2)HTML常用标签(3)表格(4)特殊字符 总结 前言 在当今的软件开发领域,…...

Python----Python高级(并发编程:进程Process,多进程,进程间通信,进程同步,进程池)
一、进程Process 拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;进程切换需要的资源很最大,效率低。 对于操作系统来说,一个任务就是一个进程(Process)ÿ…...
汽车自动驾驶AI
汽车自动驾驶AI是当前汽车技术领域的前沿方向,以下是关于汽车自动驾驶AI的详细介绍: 技术原理 感知系统:自动驾驶汽车通过多种传感器(如激光雷达、摄像头、雷达、超声波传感器等)收集周围环境的信息。AI算法对这些传感…...

Linux之安装MySQL
1、查看系统当前版本是多少位的 getconf LONG_BIT2.去官网下载对应的MYSQL安装包 这里下载的是8版本的,位数对应之前的64位 官网地址:https://downloads.mysql.com/archives/community/ 3.上传压缩包 4.到对应目录下解压 tar -xvf mysql-8.0.26-lin…...

说说Redis的内存淘汰策略?
大家好,我是锋哥。今天分享关于【说说Redis的内存淘汰策略?】面试题。希望对大家有帮助; 说说Redis的内存淘汰策略? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 提供了多种内存淘汰策略,用于在内存达到限制时决定如何…...
SQL范式与反范式_优化数据库性能
1. 引言 什么是SQL范式 SQL范式是指数据库设计中的一系列规则和标准,旨在减少数据冗余、提高数据完整性和一致性。常见的范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF(Boyce-Codd范式)。 什么是SQL反范式 SQL反范式是指在满足范式要求的基础上,有…...
从BIO到NIO:Java IO的进化之路
引言 在 Java 编程的世界里,输入输出(I/O)操作是基石般的存在,从文件的读取写入,到网络通信的数据传输,I/O 操作贯穿于各种应用程序的核心。BIO(Blocking I/O,阻塞式 I/O࿰…...

Mysql:数据库
Mysql 一、数据库概念?二、MySQL架构三、SQL语句分类四、数据库操作4.1 数据库创建4.2 数据库字符集和校验规则4.3 数据库修改4.4 数据库删除4.4 数据库备份和恢复其他 五、表操作5.1 创建表5.2 修改表5.3 删除表 六、表的增删改查6.1 Create(创建):数据新增1&#…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...