git | 回退版本 并保存当前修改到stash,在进行整合。[git checkout | git stash 等方法 ]

news2025/3/25 23:41:19

目录

一些常见命令:

git 回退版本

一、临时回退(不会修改历史,可随时回到当前版本)

方法1:git checkout HEAD~1

二、永久回退(改变分支指向)

方法2:git reset

1. 保留修改(soft回退)

2. 丢弃暂存区,保留工作区修改(mixed,默认)

3. 全部丢弃(hard)

★ 保险操作:先备份一份修改

 排查package.json等环境是否有影响?

📦 步骤1:确认 package.json 有没有变

方法1:查看文件改动历史

方法2:比较当前版本与上一个版本的 package.json 差异

🛠 步骤2:排查 package-lock.json 差异

🧪 步骤3:强制同步依赖

→ 这会根据回退后的 package-lock.json,重新整理 node_modules,让环境完全对应。

如何彻底回退 package.json 和 package-lock.json?

★ 选择性的应用 stash —— 边查看 stash 中的更改,一边在 VSCode 里边调整、边预览成果

🔍 1. 查看 stash 中的内容(不影响当前代码)

👨‍💻 2. 临时应用 stash 内容(非永久)→ 可边修改边预览

git stash apply 存在冲突:git stash apply error: Your local changes to the following files would be overwritten by merge:

​编辑

🔧 3.★ 如何边修改边查看效果?—— 进入 VSCode 查看和编辑代码

💾 4. 提交你要的改动(手动提交)

⚠️ 注意:——处理完,可丢弃stash(git stash drop stash@{0})

🔄 总结你要的操作顺序:


一些常见命令:

git log --oneline                        查看提交记录,确定当前的commit

git checkout  COMMIT_ID        退回到COMMIT_ID的版本

git status                                 当前修改了哪些文件

git diff                                        查看具体改动内容

git stash drop                                放弃 stash 的内容(删除 stash区的备份)

git stash pop                                还原 stash 的内容

操作作用
git stash保存修改
git stash pop还原修改并删除 stash 记录
git stash apply还原修改但保留 stash 记录
git stash list查看所有 stash
git stash -u保存所有修改(包括新文件
git stash show -p

查看 stash 的具体代码变动

grep -r "xxxx" .全局搜索项目中的某个引用(如xxxx)

git 回退版本

一、临时回退(不会修改历史,可随时回到当前版本)

方法1:git checkout HEAD~1

将工作区回退到上一个版本,但不会改变分支指向。

git checkout HEAD~1

  • 缺点:是游离HEAD状态(detached HEAD),不能直接提交,需要创建新分支或回到当前版本。

二、永久回退(改变分支指向)

方法2:git reset

1. 保留修改(soft回退)

git reset --soft HEAD~1

  • 回退到上一个版本,保留修改内容到暂存区
2. 丢弃暂存区,保留工作区修改(mixed,默认)

git reset --mixed HEAD~1

  • 暂存区回退,工作区保留修改(适合撤销提交)。
3. 全部丢弃(hard)

git reset --hard HEAD~1

  • 完全回退到上个版本,暂存区和工作区的修改全部丢弃
  • 注意:慎用,数据无法恢复!

★ 保险操作:先备份一份修改

如果你还是不确定,建议先保存修改到分支或补丁:

git stash

→ 然后你就可以安全 git reset --hard HEAD~1,之后再用:

git stash pop

把修改还原回来。

git stash = 暂时存放修改,不丢失,方便回退或切换分支

🗂 查看所有 stash:git stash list

  • git stash 只保存已修改的内容(未跟踪的新文件不会保存,需要加 -u 参数)。
  • 要备份所有修改(包括新文件):git stash -u

 排查package.json等环境是否有影响?

📦 步骤1:确认 package.json 有没有变

方法1:查看文件改动历史

git log package.json

  • 你会看到所有修改 package.json 的提交记录(含时间、commit id、提交人)。
  • 看看最近一次修改是在回退的版本之前还是之后。

方法2:比较当前版本与上一个版本的 package.json 差异

git diff HEAD~1 package.json

  • 你会看到当前版本与上一个版本之间 package.json 的具体差异。
  • 如果没有输出 → 没变。
  • 如果有依赖被添加或删除 → 需要重新 npm install

🛠 步骤2:排查 package-lock.json 差异

同理:

git diff HEAD~1 package-lock.json

  • 这能告诉你依赖的版本号是否有变化。
  • 重点: package-lock.json 改了,node_modules 没变,运行时可能就会异常。

🧪 步骤3:强制同步依赖

无论 package.json 是否变,保险操作

npm install

→ 这会根据回退后的 package-lock.json,重新整理 node_modules,让环境完全对应。


如何彻底回退 package.jsonpackage-lock.json?

git log --oneline                        查看提交记录,确定当前的commit

git show abc1234:package.json   找到回退的目标版本,如 ID 是 abc1234,看当时的 package.json

git checkout abc1234 -- package.json package-lock.json 确认没问题后,用下面命令恢复

可以再用 grep "eventemitter3" package.json 检查确认


★ 选择性的应用 stash —— 边查看 stash 中的更改,一边在 VSCode 里边调整、边预览成果

这样你就能判断哪些是「可以要的」,哪些是「舍弃的」

🔍 1. 查看 stash 中的内容(不影响当前代码)

在终端中输入:

git stash list

输出示例:

stash@{0}: WIP on master: 26851d3 拖到画布上方后消失(数据传递?)

👉 查看详细改动内容:

git stash show -p stash@{0}

这个会显示所有修改过的文件内容,便于你判断。


👨‍💻 2. 临时应用 stash 内容(非永久)→ 可边修改边预览

git stash apply

  • 现在所有 stash 的改动已回来了,但还没提交,你可以:
    • VSCode 中逐个文件对比(左 Git 栏 → 点击文件)
    • 预览效果(运行 vite dev 之类),验证哪些改动你想保留
git stash apply 存在冲突:git stash apply error: Your local changes to the following files would be overwritten by merge:

解决暂存你要保留的文件后再 stash apply

  1. 暂存你当前的 package-lock.jsonpackage.json,保护它们

    git add package-lock.json package.json

  2. 然后执行 stash apply 时使用 --index 参数,避免覆盖已暂存的文件:

    git stash apply --index

⚠️ 说明:--index 会尽量恢复 stash 中的文件,但由于你已经暂存了 package-lock.json,它不会被覆盖。

stash 中的其他代码文件已经被成功“应用”到了你的工作区(但未提交);


🔧 3.★ 如何边修改边查看效果?—— 进入 VSCode 查看和编辑代码

打开 VSCode → 左侧源代码管理 (SCM) 面板,你会看到所有的改动文件,可以:

  • 双击文件查看每一处改动(与当前版本对比)
  • 手动修改文件内容
  • 保存后运行你的项目查看效果


💾 4. 提交你要的改动(手动提交)

git add 你要的文件

git commit -m "从 stash 中提取部分改动,修复 X 功能"


⚠️ 注意:——处理完,可丢弃stash(git stash drop stash@{0}

如果你确认所有需要的内容都已处理,可以丢弃 stash

git stash drop stash@{0}


🔄 总结你要的操作顺序:

  1. git stash apply
  2. VSCode 调整 & 预览成果
  3. 挑选需要的内容 → git addgit commit
  4. git stash drop(可选)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2320016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java SE】单例设计模式

参考笔记:深入理解Java设计模式:单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式(static属性/方法经典使用场景 ) 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

安全守护:反光衣检测技术的革新之路

视觉分析助力船上工人反光衣检测 在现代工业生产与作业环境中,安全始终是首要考虑的因素。对于水上作业,如船舶维护、海上施工等场景,工人穿戴反光衣是预防事故、提高可见性的重要措施。然而,传统的人工检查方式不仅效率低下&…

OSCP准备靶场联系-Kioptrix 1

oscp 准备 Kioptrix 1 信息收集 ifconfig 确认自己的电脑ip,nmap收集通往段ip,确认靶机IP nmap 重点关注服务版本 nmap -sn 192.168.1.0/24 # 扫描网段内存活主机,不进行端口扫描[1,10](ref) nmap -sP 192.168.1.1 # 传统Ping扫描…

【工具变量】中国各地级市是否属于“信息惠民国家试点城市”匹配数据(2010-2024年)

数据来源:国家等12部门联合发布的《关于加快实施信息惠民工程有关工作的通知》 数据说明:内含原始文件和匹配结果,当试点城市在2014年及以后,赋值为1;试点城市在2014年之前或该城市从未实施信息惠民试点工程&#x…

深度学习 Deep Learning 第7章 深度学习的正则化

深度学习 第7章 深度学习的正则化 章节概述 正则化技术是深度学习中防止过拟合、提升模型泛化能力的核心手段。本章深入探讨了深度学习中的正则化技术,旨在解决模型在新数据上的泛化能力问题。正则化是通过在学习算法中引入额外的约束或惩罚项,来减少模…

使用DeepSeek翻译英文科技论文,以MarkDown格式输出,使用Writage 3.3.1插件转换为Word文件

一、使用DeepSeek翻译英文科技论文,以MarkDown格式输出 以科技论文“Electrical Power System Sizing within the Numerical Propulsion System Simulation”为例。 关于Writage 3.3.1的进一步了解,可发送邮件至邮箱pyengine163.com. 首先,打…

一文了解ThreadLocal

什么是ThreadLocal? ThreadLocal是每个线程私有的,线程可以把自己的私有数据放到ThreadLocal里面,不用担心其他线程访问到自己ThreadLocal。 通过set()方法将值存入ThreadLocal或者修改值,get()方法取出值,remove()方…

【免费】2000-2019年各省地方财政印花税数据

2000-2019年各省地方财政印花税数据 1、时间:2000-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政印花税 4、范围:31省 5、指标说明:印花税是对特定经济活动和法律行为所征收的…

HTML——什么是块级元素,什么是内联元素,有何区别

在 HTML 中,块级元素(Block-level element)和内联元素(Inline element)是两种不同类型元素,它们在页面布局和样式应用方面有不同的行为和特性。 块级元素(Block-level element) 块级…

优先级与环境变量的艺术:驾驭 Linux 系统的核心

文章目录 前言一、什么是进程优先级?二、Linux 系统中的优先级2.1 查看进程优先级2.2 PRI 和 NI 的关系2.3 修改进程优先级2.4 进程优先级的实现原理2.5 进程的特性 三、环境变量3.1 PATH——搜索可执行文件的目录列表1. 为什么自己写的程序需要加 ./ 才能执行&…

【AVRCP】深度剖析 AVRCP 中 Generic Access Profile 的要求与应用

目录 一、GAP基础架构与核心要求 1.1 GAP在蓝牙体系中的定位 1.2 核心模式定义 二、AVRCP对GAP的增强要求 2.1 模式扩展规范 2.2 空闲模式过程支持 三、安全机制实现细节 3.1 认证与加密流程 3.2 安全模式要求 四、设备发现与连接建立 4.1 发现过程状态机 4.2 连接…

聊聊如何保障自动化测试的稳定性

目录 一、环境隔离与控制 二、 测试用例设计原则 三、处理异步和动态内容 四、依赖管理 五、错误处理与日志 六、持续集成(CI)与自动化流程 七 、监控与维护 八、团队协作与文化 在我们进行自动化测试的时候,可能会遇到一些测试环境不…

【AI学习笔记】Coze平台实现将Excel文档批量导入数据库全过程

背景前摇&原视频教程: 最近看到很多同学都在用Coze平台操作数据,我也想了解一下工作流的搭建和数据处理过程,但是一下子又看不懂太复杂的逻辑,于是上B站搜索相关的基础教程。 Coze官方教程: 之前有看过Coze平台…

《可爱风格 2048 游戏项目:HTML 实现全解析》

一、引言 在如今的数字化时代,小游戏以其简单易上手、趣味性强的特点深受大家喜爱。2048 游戏作为一款经典的数字合并游戏,拥有庞大的玩家群体。本文将详细介绍一个用单文件 HTML 实现的可爱风格 2048 游戏项目,它不仅具备传统 2048 游戏的基…

HR人员和组织信息同步AD域服务器实战方法JAVA

HR人员和组织信息同步AD域服务器 前期准备AD域基础知识整理HR同步AD的逻辑代码结构配置文件设置启动类HR组织的BeanHR人员Bean获取HR人员和组织信息的类AD中处理组织和人员的类日志配置 POM.xml文件生成EXE文件服务器定时任务异常问题注意事项 前期准备 1、开发语言&#xff1…

java项目之基于ssm的毕业论文管理系统(源码+文档)

项目简介 毕业论文管理系统实现了以下功能: 本毕业论文管理系统主要实现的功能模块包括学生模块、导师模块和管理员模块三大部分,具体功能分析如下: (1)导师功能模块:导师注册登录后主要功能模块包括个人…

4小时速通shell外加100例

🔥 Shell 基础——从入门到精通 🚀 🌱 第一章:Shell,简单说! 👶 什么是Shell?它到底能做什么?这章让你快速了解Shell的强大之处! 👶 什么是Shell…

文字变央视级语音转换工具

大家在制作短视频、广告宣传、有声读物、自媒体配音、学习辅助等场景的时候,经常会需要用到配音来增强视频的表现力和吸引力。然而,市面上的一些配音软件往往需要收费,这对于很多初学者或者预算有限的朋友来说,无疑增加了一定的负…

日志2333

Pss-9 这一关考察的是时间盲注 先练习几个常见命令语句&#xff1a; select sleep(5);--延迟5s输出结果 if &#xff08;1>0,ture,false&#xff09;;--输出‘ture’ /if &#xff08;1<0,ture,false&#xff09;;--输出‘false’ select ascii()/select ord()返回字…

美国国家数据浮标中心(NDBC)

No.大剑师精品GIS教程推荐0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】 1Openlayers 【入门教程】 - 【源代码示例 300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3MapboxGL【入门教程】 - 【源代码图文示例150】 4Cesium 【入门教程】…