git版本回退(git reset、git revert、git stash)

news2025/1/12 12:26:34

文章目录

    • 回退的两种情况
      • 1.已 commit,未push到远程仓库。
        • git reset --soft (撤销commit)
        • git commit --amend(修改commit 提交的内容)
        • git reset --mixed(撤销 commit 和 add 两个动作)
      • 2.已 commit,并且push到了远程仓库。
        • git stash save "XXX"( 如果当前已修改了代码文件,发现需要进行版本回退,可以使用,将当前文件缓存)
        • git reset --hard 版本号(撤销并舍弃版本号之后的提交记录)
        • git revert 版本号(撤销,但是保留了提交记录)


本文 git 相关命令:

git reset: 回退版本,可指定某一次提交的版本。git reset [--soft | --mixed | --hard] commitId

git revert: 撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。git revert commitId
git commit --amend: git commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明
git status: 查看文件在工作区和暂存区的状态。

git log: 查看代码提交记录,找到需要回滚的目标版本号。

回退的两种情况

修改README.md前

回退分两种情况:

1.已 commit,未push到远程仓库。

在这里插入图片描述
修改README.md后

在这里插入图片描述

  • git reset --soft (撤销commit)

    • 修改了README.md,文档内容,并提交到了本地仓库
      在这里插入图片描述
    • 此时回滚README.md,通过 git reset --soft HEAD^ 回退上一个commit
      在这里插入图片描述
      注意: HEAD^的意思是上一个版本,也可以写成HEAD~1 ,如果你进行了2次commit,想都撤回,可以使用HEAD~2,这个命令仅仅是撤回commit操作,写的代码仍然保留
  • git commit --amend(修改commit 提交的内容)

    • 修改了README.md,文档内容,并提交到了本地仓库
      在这里插入图片描述

    • 输入 git commit --amend,利用vim语法,点击i进入编辑模式,修改对应文本内容,点击Esc退出编辑模式,按键:wq强制退出

      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

  • git reset --mixed(撤销 commit 和 add 两个动作)

    • 此时已经执行add和commit两个操作,git状态是这样的

    在这里插入图片描述

    • 输入git reset --mixed HEAD^ 撤销 commit 和 add 两个动作
      在这里插入图片描述

2.已 commit,并且push到了远程仓库。

  • git stash save “XXX”( 如果当前已修改了代码文件,发现需要进行版本回退,可以使用,将当前文件缓存)

    • 输入git stash save "XXX"(能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录)
      在这里插入图片描述

    • 输入git stash pop/apply ,将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。
      注:pop将堆栈中最近保存的内容删除(栈是先进后出),aplly不会删除保存的内容
      在这里插入图片描述
      在这里插入图片描述
      可以使用git stash apply + stash名字(如stash@{1})指定恢复哪个stash到当前的工作目录。

    • git stash clear (清除堆栈中的所有 内容)

    本文主要讲版本回退,相关缓存操作,请自行查找

  • git reset --hard 版本号(撤销并舍弃版本号之后的提交记录)

    • git log找到要回退到的版本号,当前第五次修改已缓存尚未提交,处于第四次提交的版本,此处要回退到第三次版本
      在这里插入图片描述

    • 输入git reset --hard be125c629a893e28f62439cf71b1e9671c73a4bb 回退到第三版本
      在这里插入图片描述
      此时README.md文档内容为
      在这里插入图片描述

    • git push -f(强制推送到远程,之前提交都会被覆盖,慎用)

      在这里插入图片描述
      注: 通过reset的方式,此时可用看到提交记录和文件都被撤销了,reset之后,后面的版本就找不到了使用需谨慎,不推荐使用。

  • git revert 版本号(撤销,但是保留了提交记录)

    • git log找到要回退到的版本号,当前处于第四次提交的版本,此处要回退到第三版本
      在这里插入图片描述

    • 输入git revert -n be125c629a893e28f62439cf71b1e9671c73a4bb^..HEAD 回退到第三版本

      在这里插入图片描述

    • 提交文件,并查看日志
      在这里插入图片描述
      在这里插入图片描述
      注: 这种方式不会把版本往前回退,而是生成一个新的版本。所以,你只需要让别人更新一下代码就可以了,你之前操作的提交记录也会被保留下来

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

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

相关文章

联合证券|左手消费,右手TMT!超270只股票新年获“买入”“推荐”

2023年开年A股商场交投继续火热,出资组织在活跃呼吁出资者布局的一起,自己又更加看好哪些标的和赛道? Wind数据显现,2023年头,券商关于大消费、TMT等方向装备价值更为喜爱,到1月10日,给予“买入…

LOAM、LEGO-LOAM与LIO-SAM的知识总结

文章目录LOAM、LEGO-LOAM与LIO-SAM的知识总结1.概要2.传感器信息读取3.数据的预处理4.激光雷达里程计4.1特征点提取4.2特征点关联匹配4.2.1 标签匹配4.2.2 两步LM优化4.2.3 LIO-SAM优化4.2.3.1 IMU预积分4.2.3.2 关键帧的引入4.2.3.3 因子图4.2.3.4 GPS因子4.2.3.5 回环因子5. …

代码随想录算法训练营第十五天字符串 java : 层序遍历 226.翻转二叉树 101. 对称二叉树

文章目录前言Leetcode 102 二叉树的层序遍历题目讲解Leetcode 226.翻转二叉树题目讲解Leetcode 101. 对称二叉树题目讲解递归法总结前言 递归三定律 确定参数和返回值确认终止条件确认单层递归的逻辑 Leetcode 102 二叉树的层序遍历 题目讲解 /*** Definition for a binar…

大批量数据需要导出导入时,使用mysql 快速导出和导入 csv

使用MYSQL命令行模式 导出into outfile 导入load data导出 into outfile:mysql> select * from cdkeyduihuan into outfile d:/cdk.csv FIELDS TERMINATED BY ,;Query OK, 1049990 rows affected (1.16 sec)d:/cdk.csv 导出数据保持的文件目录。FIELDS TERMINATE…

windows ngnix 配置https

因为客户需求,需要把原来的http换成https,还不能影像原来http的访问。 看了许多网上的资料,经过实践。我总结下相关步骤及怎么配置的。 第一步,把http换成https这里需要ssl证书 ssl证书生成,我接触的有2种免费方式。…

Kettle的安装以及简单使用

Kettle是一款开源免费的ETL工具,ETL全称 Extract - Transform - Load 意味着数据抽取,转换,装载的过程。 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到…

二叉树19:最大二叉树

主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:654. 最大二叉树 题目: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地…

【ElementUI】一.axios拦截器;二.ElementUI

目录 一.axios拦截器 1.axios模块的作用:是对基于http请求的封装。在浏览器端对异步请求对象XMLHttpRequest进行封装 2.拦截器: (1)请求拦截器:对客户端发起的请求进行统一的前期处理(token、时间戳、co…

分支与循环语句 - 练习题

目录 一、分支语句 1. 判断一个数是否为奇数 2. 输出1-100之间的奇数 法1:遍历1-100所有的数字,判断是否为奇数,再输出 法2:奇数从1开始,等差为2,所以循环2 二、循环语句 1. 计算 n的阶乘。 2. 计算…

ArcGIS基础实验操作100例--实验84查找面到直线的最近点位置

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验84 查找面到直线的最近点位置 目录 一、实验背景 二、实验数据 三、实验步骤 &#…

Acwing---1015.摘花生

摘花生1.题目2.基本思想3.代码实现1.题目 Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经…

Hudi集成Spark(二)Spark SQL方式

文章目录环境准备创建表插入数据查询数据更新数据删除数据覆盖数据修改表结构(Alter Table)修改分区存储过程(Procedures)Catalog:可以和Spark或者Flink中做一个共享,共享之后,计算引擎才可以去…

跨域与Nginx总结

跨源资源共享(CORS)是一种机制,他使浏览器可以访问由其他域提供的Web资源。通常,浏览器会使用同源策略来限制从脚本中发出的HTTP请求。例如,如果一个网站的资源位于https://haha.com,那么它就不能发出对htt…

使用ResNet50实现CIFAR10数据集的训练

如果对你有用的话,希望能够点赞支持一下,这样我就能有更多的动力更新更多的学习笔记了。😄😄 使用ResNet进行CIFAR-10数据集进行测试,这里使用的是将CIFAR-10数据集的分辨率扩大到32X32,因为算力相关的…

C语言常用内存函数的深度解析

文章目录前言memcpymemcpy函数的使用memcpy函数的自我实现memmovememmove函数的使用memmove函数的自我实现memcmpmemcmp函数的使用memcmp函数的自我实现memsetmemset函数的使用memset函数的自我实现写在最后前言 内存函数的使用广泛度大于常用字符串函数的使用广泛度&#xff0…

教程- VTK.js的基本介绍

VTK.js的核心是标准可视化工具包(VTK)库的JavaScript移植,这是一个c库,旨在促进数据可视化,在此基础上构建了科学可视化应用程序Paraview。VTK.js没有使用OpenGL,而是利用WebGL,主要关注几何和体渲染。因此&#xff0c…

JavaFx程序使用Gloun打包成Android平台App教程

0. 提要 !!! 适合有Maven基础,对JavaFx或JavaFX移动端感兴趣的朋友 提示必须在Linux环境下进行,可以使用虚拟机 推荐使用CentOS系统进行,虚拟机硬盘大小推荐最少给30G 不要像我一样,搞一半又去给文件系统根目录扩大容量 如果容量不够可以看篇博客: http…

C++模板(第二版)笔记之第十八章:模板的多态性

文章目录一、动态多态(dynamic polymorphism)二、静态多态三、静态多态VS动态多态1.术语2.优点和缺点3.结合两种多态形式:CRTP四、使用concepts五、新形势的设计模式六、泛型编程七、总结一、动态多态(dynamic polymorphism&#…

【C语言】内存函数介绍

它们所在的头文件: (这里出现的arr都为char类型数组)strlen作用:计算一个字符串的长度本质:历经千辛找一个 \0 ,找到 \0 就立马停止。(就是找 \0 )易错:strlen 返回值为 …

物联网无线通信技术中蓝牙和WIFI有哪些区别?

在物联网快速发展的时代,联网运行的设备越来越多,无线通信技术在物联网中发挥着举足轻重的作用,无线通信技术的发展改变了信息传输的方式,人们在任何时间、任何地点都可以访问设备,目前最常用的两种无线通信技术分别是…