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&#…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
