当前位置: 首页 > news >正文

【区别】三种命令取消已暂存的文件,处理暂存区和文件的跟踪状态

取消已暂存的文件

git restore --staged <文件>git reset HEAD <文件>git rm --cached <文件> 都可以用于取消已暂存的文件,但它们的作用和使用场景略有不同。下面是它们的区别:

1. git restore --staged <文件>

  • 该命令用于将文件从暂存区(staging area)移除,恢复到工作区的状态,不会更改工作区的文件内容
  • 仅仅撤销 git add 的操作,让文件回到未暂存的状态。
  • 不改变文件的版本控制状态(文件仍然受 Git 跟踪)。
  • 作用:用于取消将文件加入暂存区,但保留工作区的改动不受影响。

示例:你在执行 git add 后发现文件暂存错了,但你不想丢失对文件的修改,这时使用 git restore --staged 可以取消暂存而不更改文件内容。

2. git reset HEAD <文件>

  • git reset HEAD <文件>git restore --staged <文件> 功能非常相似,都会将文件从暂存区移除,回到未暂存状态。
  • git reset HEAD 是一个较老的方式,git restore --staged 是 Git 新版本中引入的命令,目的是更清晰地区分 Git 的恢复操作(restore)和重置操作(reset)。
  • 作用:用于撤销已暂存的文件,让文件状态从暂存区回到未暂存状态,工作区文件内容不受影响。

示例:你想取消 git add 后的暂存,但并不想丢失工作区的修改内容,两者都是可以使用的。

3. git rm --cached <文件>

  • 与前两个命令不同的是,git rm --cached <文件> 不仅会将文件从暂存区移除,而且会将文件从 Git 的跟踪中移除
  • 文件将不再受 Git 版本控制,但仍然保留在工作区中。
  • 通常用于从版本库中移除文件,但你仍然希望文件保留在你的本地目录中。
  • 作用:当你希望从版本库删除某个文件,但保留文件在你的工作区中时使用。

示例:你发现有一个文件不应该被 Git 跟踪(例如 .env 文件),可以通过 git rm --cached <文件> 将其从 Git 中移除,但文件内容仍然保留在本地。

总结

  • git restore --staged <文件>git reset HEAD <文件>:都用于取消文件暂存,仅将文件状态从暂存区移除,文件仍然受 Git 跟踪,内容不受影响。两者功能一致,只是 git restore --staged 更现代,语义更明确。
  • git rm --cached <文件>:将文件从暂存区移除,并停止对文件的版本控制(将文件从版本库删除),但文件仍然保留在工作区。适用于希望文件不再受 Git 跟踪的情况。

选择哪个命令取决于你希望如何处理暂存区和文件的跟踪状态。

git reset --hard 使用时需小心,以免丢失未保存的工作。

  • 如果你不想丢失数据或想保留历史,git revert 是更安全的选择。
  • 如果你希望恢复到之前某个稳定状态,且对丢失当前的工作区和提交不在意,可以继续使用 git reset --hard

替代命令和替代方法

  1. git restore(更改工作目录文件)

    • git restore 是 Git 新增的命令,用于更改或丢弃工作区的更改。如果你希望只还原文件而不影响提交历史,可以使用:
      git restore .
      
    • 它不会改变当前 HEAD 所指向的提交,而只是将工作目录恢复到 HEAD 所指的状态。
  2. git switch(切换分支)

    • git switch 是另一个新增命令,专门用于切换分支。与 checkout 类似,但专注于分支的操作。
    • 如果想重置当前分支到某个标签或提交,可以先使用 switch 切换到分支,然后用 reset
  3. git reset --hard 的替代:git checkout <commit>

    • 如果你只想查看某个特定的提交而不永久修改分支,你可以使用 checkout 命令:
      git checkout v1
      
    • 这样,你不会重置分支的 HEAD,而只是临时切换到那个提交。
  4. git revert(安全地回滚)

    • 如果你想撤销一次或多次提交,但希望保留提交历史,使用 revert 更合适:
      git revert <commit>
      
    • 这样你不会丢失提交记录,只是会生成一个新的反向提交。

相关文章:

【区别】三种命令取消已暂存的文件,处理暂存区和文件的跟踪状态

取消已暂存的文件 git restore --staged <文件>、git reset HEAD <文件> 和 git rm --cached <文件> 都可以用于取消已暂存的文件&#xff0c;但它们的作用和使用场景略有不同。下面是它们的区别&#xff1a; 1. git restore --staged <文件> 该命令…...

如何在Spring Boot中有条件地运行CommandLineRunner Bean

PS 使用 Spring Boot 3.1.2 进行测试 1.使用ConditionalOnProperty ConditionalOnProperty仅当特定属性存在或具有特定值时&#xff0c;注释才会创建 Bean 。 在此示例中&#xff0c;仅当或文件中的CommandLineRunner属性db.init.enabled设置为 true时&#xff0c;才会执行。…...

边缘自适应粒子滤波(Edge-Adaptive Particle Filter)的MATLAB函数示例,以及相应的讲解

目录 讲解 初始化 预测步骤 观测模拟 权重更新 重采样 状态估计 总结 下面是一个简单的边缘自适应粒子滤波&#xff08;&#xff09;的函数示例&#xff0c;以及相应的讲解。 程序源代码&#xff1a; function X_est edgeAdaptiveParticleFilter(numParticles, numS…...

一块1T硬盘怎么有sdb1和sdb2

在一块 1TB 硬盘上看到两个分区 sdb1 和 sdb2 是非常常见的现象。硬盘可以被划分为多个分区&#xff0c;每个分区都可以用作不同的目的&#xff0c;如存储不同类型的数据、安装不同的操作系统或为系统不同的功能提供支持。 1. 分区的概念 硬盘可以被划分为多个分区&#xff0…...

Python知识点:如何使用Flink与Python进行实时数据处理

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Flink与Python进行实时数据处理 Apache Flink是一个流处理框架&#xf…...

Swagger配置且添加小锁(asp.net)(笔记)

此博客是基于 asp.net core web api(.net core3.1)框架进行操作的。 一、安装Swagger包 在 NuGet程序包管理中安装下面的两个包&#xff1a; swagger包&#xff1a;Swashbuckle.AspNetCore swagger包过滤器&#xff1a;Swashbuckle.AspNetCore.Filters 二、swagger注册 在…...

lambda表达式底层实现:反编译LambdaMetafactory + 转储dump + 运行过程 + 反汇编 + 动态指令invokedynamic

一、结论先行 lambda 底层实现机制 1.lambda 表达式的本质&#xff1a;函数式接口的匿名子类的匿名对象 2.lambda表达式是语法糖 语法糖&#xff1a;编码时是lambda简洁的表达式&#xff0c;在字节码期&#xff0c;语法糖会被转换为实际复杂的实现方式&#xff0c;含义不变&am…...

Unity初识+面板介绍

Unity版本使用 小版本号高&#xff0c;出现bug可能性更小&#xff1b;一台电脑可以安装多个版本的Unity&#xff0c;但是需要安装在不同路径&#xff1b;安装Unity时不能有中文路径&#xff1b;Unity项目路径也不要有中文。 Scene面板 相当于拍电影的片场&#xff0c;Unity程…...

【CSS in Depth 2 精译_041】6.4 CSS 中的堆叠上下文与 z-index(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…...

uniapp微信小程序巧用跳转封装鉴权路由

1.这是封装的跳转方法&#xff1a; import store from "../stores/store";function Router(type, url, params) {const NoLoginPage [。。。。。];var queryString Object.keys(params).map((key) > ${key}${params[key]}).join("&");if (!NoLog…...

国外电商系统开发-运维系统开发

因项目运营环境在国外&#xff0c;所以必须将服务器选择国外&#xff0c;加上第一次运营国外项目。在两大趋势下&#xff0c;企业的运营方向必须通过大数据来分析及修正运营方向&#xff0c;加上后期服务器数量日益增多&#xff0c;如何有效的管理众多的服务器及验证运营方向&a…...

基于投影滤波算法的rick合成地震波滤波matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 RICK合成地震波模型 4.2 投影滤波算法原理 5.完整工程文件 1.课题概述 基于投影滤波算法的rick合成地震波滤波matlab仿真。分别通过标准的滤波投影滤波以及卷积滤波投影滤波对合成地震剖面进行滤波…...

【艾思科蓝】机器学习框架终极指南:PyTorch vs TensorFlow vs Keras vs Scikit-learn

第十届建筑、土木与水利工程国际学术会议(ICACHE 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录 引言 1. PyTorch PyTorch的特点 PyTorch的用例 PyTorch的安装 PyTorch代码示例 2. TensorFlow …...

招联金融秋招内推2025

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...

遮罩解决图片悬浮操作看不到的情况

未悬浮效果 悬浮效果 如果仅仅是添加绝对定位&#xff0c;那么遇到白色图片&#xff0c;就会看不到白色字体。通过遮罩&#xff08;绝对定位透明度&#xff09;就可以解决这个问题。 <script setup> </script><template><div class"box"><…...

IoT网关的主要功能有哪些?天拓四方

在数字化浪潮席卷全球的今天&#xff0c;物联网&#xff08;IoT&#xff09;技术凭借其独特的优势&#xff0c;逐渐在各个领域展现出强大的生命力。而IoT网关&#xff0c;作为连接物理世界与数字世界的桥梁&#xff0c;其在物联网体系中的作用愈发凸显。 一、数据聚合与预处理…...

继承实现单例模式的探索(一)

前言 之前看到朋友采用继承的方式来实现单例模式&#xff0c;觉得很厉害&#xff0c;随后自己去探索了一番&#xff0c;以前实现单例模式都是把代码内联到具体的类中&#xff0c;这使得工程中每次需要使用单例模式时&#xff0c;都采用拷贝的方式&#xff0c;增加了很多冗余代码…...

【代码实现】opencv 高斯模糊和pytorch 高斯模糊

wiki百科 Gaussian Blur&#xff0c;也叫高斯平滑&#xff0c;是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果&#xff0c;通常用它来减少图像噪声以及降低细节层次。 opencv实现 opencv实现高斯滤波有两种方式&#xff0c; 1、是使用自带的cv2…...

python基础语法2

文章目录 1.顺序语句2.条件语句2.1 语法格式 3.缩进与代码块4.空语句 pass5.循环语句5.1 while循环5.2 for循环 5.3 continue与break 1.顺序语句 默认情况下&#xff0c;python的代码都是按照从上到下的顺序依次执行的。 print(hello ) print(world)结果一定是hello world。写…...

linux第一课:下载与安装

这是我的个人复习笔记&#xff0c;草稿箱字太多会卡就发这了&#xff0c;欢迎大家阅读。 Kali Linux&#xff0c;黑客必备神器。跟着我&#xff0c;带你从入门到入狱&#xff01; 第一课&#xff0c;下载与安装。 第一步&#xff1a; 在官网下载Centos镜像&#xff1a;http…...

基于项目代码实测:XCP/CCP 模块“标定差异”全流程深度操作指南

在实际项目的 XCP/CCP 标定业务中&#xff0c;核对与同步底层内存参数是一项极其高频的操作。本指南将完全基于最新版“标定差异&#xff08;Calibration Difference&#xff09;”界面的真实功能逻辑&#xff0c;为你提供一份严谨、详细、且立即可用的三倍容量操作手册。无论你…...

Github创建项目(创建仓库、新建项目、新建仓库)步骤

文章目录 新建项目然后根据指示创建第一个提交并推送即可 新建项目 然后根据指示创建第一个提交并推送即可 echo "# xxxxxxxx" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin ht…...

涡流检测驱动的发动机气门硬度分选技术【附算法】

✨ 长期致力于核环境机器人、机器人运动学、机械臂振动抑制、自适应动力学控制研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;核辐射环境下涡流检测机…...

多语言交易所源码/币币交易+期权交易+永续合约+Defi借贷+新币申购+矿机理财/前端uniapp纯源码+后端php

简介&#xff1a; 多语言交易所源码/币币交易期权交易永续合约Defi借贷新币申购矿机理财/前端uniapp纯源码后端php 语言&#xff1a;7种&#xff0c;看图 前端是uniapp纯源码&#xff0c;只有手机端&#xff0c;后端是php框架&#xff0c;清理了后门的&#xff0c;是最开始蓝…...

基于少样本学习和思维链提示的知识概念抽取方法研究

佘霖琳 熊龙洋 陆雪松&#xff08;华东师范大学数据科学与工程学院&#xff0c;上海 200062&#xff09;摘 要 知识概念抽取在教育、医疗、金融领域均有重要的应用价值。知识概念抽取属于命名实体识别的一个细分任务&#xff0c;但是由于缺乏数据集和知识概念实体类型的特殊性&…...

企业盈利密码,商业模式必读经典书籍推荐

很多人一提到“商业模式”&#xff0c;脑子里马上会想到诸如盈利、流量、融资、裂变、风口等一类的关键词。但真正问一句&#xff1a;“商业模式到底是什么&#xff1f;”往往又说不清。有人把商业模式理解成赚钱的方法&#xff1b;有人觉得是营销套路&#xff1b;还有人认为只…...

家居用品展行业深度分析:格局、痛点与前景

家居用品展是家居产业的风向标与商贸核心枢纽&#xff0c;2026年行业正处于存量焕新、设计驱动、数智赋能的关键转型期。本文从发展现状、核心格局、痛点拆解、趋势机遇、前景预判五大维度&#xff0c;深度剖析家居用品展行业的底层逻辑与发展脉络&#xff0c;助力从业者把握行…...

Taotoken助力初创团队低成本管理多个AI项目API用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken助力初创团队低成本管理多个AI项目API用量 对于小型创业团队的技术负责人而言&#xff0c;同时推进多个AI项目是常态。每个…...

抖音批量下载器终极指南:3步轻松搞定无水印视频下载

抖音批量下载器终极指南&#xff1a;3步轻松搞定无水印视频下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

【往届均已完成EI检索!】第三届遥感测绘与全球定位算法国际学术会议(RSGPA 2026)

第三届遥感测绘与全球定位算法国际学术会议&#xff08;RSGPA 2026&#xff09;将于2026年6月13日举办线上会议。会议主要围绕遥感测绘与定位算法等研究领域展开讨论。本次会议旨在为相关领域的研究人员提供一个权威的国际交流平台&#xff0c;交流全球相关领域科技学术最新发展…...